Announcement

Collapse
No announcement yet.

GNOME's Vala 0.36 Released

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by uid313 View Post
    However there is Visual Studio Code...
    Yes, there is (sigh) ...

    Comment


    • #22
      Originally posted by ldo17 View Post

      Yes, there is (sigh) ...
      Yeah, like all software it has some bugs. This will eventually be fixed. Also it seems to be a bug in the library it uses, so it will probably be solved once they update Electron or Chromium or whatever they use.

      Comment


      • #23
        Originally posted by ldo17 View Post

        No support for shareable libraries?
        Oops, I meant to write statically typed not statically linked. So all types are known at compile time so the code can be optimized better than in dynamically typed and interpreted languages.
        It does support shared libraries.

        Comment


        • #24
          Originally posted by patstew View Post

          It is faster than those languages, but nobody uses those languages for performance critical code. You use them for rapid development of scripts. The problem is that people think that C# is basically as fast as C++ when it isn't.
          I used to work at an embedded electrionics company where the software department decided to write everything in C#, "because it's practically native speed and so much faster to write". To cut a very long story short, the software they produced needed an i5 level processor to run properly, when we had a prototype in C doing most of the same stuff running on a crappy ARM at a few hundred MHz. All the time they saved implementing functionality was wasted again trying to optimise and fix random performance and latency issues.
          Allocating practically everything on the heap and garbage collection are both big fundamental performance problems with C#, and they only bite you when you've already written a big program in it, not so much on little benchmarks. There are other fundamental design problems, like garbage collection causing indeterminate object lifetime, which means that all resources need to be IDisposable and be explicitly closed. It has also gone very quickly from brand new language to heap of legacy stuff cobbled together that wasn't really planned for with the addition of generics, linq, async etc.
          Having said all that there is some good in it. I wish C++ had reflection. And it is a reasonable choice for writing windows only GUI applications. It's just stuck in a bit of a no mans land between C/C++/Rust on the one hand and Python/Ruby/etc on the performance/fast to write spectrum.
          Part of GNOME is written using JavaScript and Python and .NET is faster than that, so yeah it could be used in scenarios where those languages are used.
          Python and JavaScript isn't only used for scripts, they are used for entire applications such as gnome-tweak-tool, clocks, meld, orca, etc.
          For a desktop application nobody notices the difference in performance between a C# and a C++ application.

          As you say, C# is a reasonable choice for writing Windows-only GUI applications, but with .NET Core and GObject Introspection it is also a reasonable choice for writing GUI applications for the Linux desktop.

          Comment


          • #25
            Originally posted by uid313 View Post

            Oops, I meant to write statically typed not statically linked.
            No RTTI, even?

            Comment


            • #26
              Originally posted by ldo17 View Post

              No RTTI, even?
              Yes, both at compile time and at runtime with powerful features such as object.GetType() and typeof(object) and the 'dynamic' type.

              Comment


              • #27
                Originally posted by uid313 View Post

                ... and at runtime ...
                I thought you said “all types are known at compile time”.

                Comment


                • #28
                  Originally posted by ldo17 View Post

                  I thought you said “all types are known at compile time”.
                  My bad. Types are known at compile type, however you can use the 'dynamic' type, as well as do reflection. If a type is declared as 'object' you can pass anything, then look it up using the .GetType() method.

                  Comment


                  • #29
                    gee - thats depressing - i've been on the microsoft (and further back the IBM) side of the fence and i've just started to have a look at vala

                    it's an elegant implementation of the OO precepts and seems to have a reasonable set of tools to support it

                    using vscode, valac and gdb - youd be hard pushed to think you weren't back over the fence

                    vs code seems to integrate vala into it's guts quite well and if i can code, compile, make and debug from one screen then
                    i'm a happy camper

                    just a thought

                    what alternatives are there to a non-C/C# compiled OO language for gnome is there?

                    Comment


                    • #30
                      and yes - i really do think gnome is a nice place to be at the moment - i know that's going to raise hackles of those that are fiercely defensive of their own particular distro

                      it's almost like a ford vs holden scenario

                      i made a measued choice before selecting gnome as my distro/desktop

                      the clincher for me was their very well documented interface guidelines that "gnome" apps should follow in style and usability

                      their guidelines are well thought out - consistent - although at first look somewhat simplistic
                      a ui should be simple in it's basis form.
                      the complexity comes from the way those simple elements are combined resulting in rich complex behaviour

                      which in a roundabout way leads me back to vala

                      its a robust high level language that's compiled to c

                      a ui is the exact place where you want the OO black box reuseability/testability/development in isolation as part of a
                      larger whole

                      for sure let's keep c going for the kernel - OO no good for that and let's face it - we've been crippled for OS development
                      ever since IBM selected the 8086 chip for their "desktop computer" and allowed a shyster to write an OS for it

                      the IBM 360 systems were at the time a joy to work with and if you've ever had the chance to work with 360 assembly language
                      well - count yourself lucky

                      i digress - what sort of support does the valac need? i have some experience with compilers/assemblers and assembly language
                      not so much c - but hey it's just another tool right?

                      Comment

                      Working...
                      X