Announcement

Collapse
No announcement yet.

GNOME's Git Tool Has Been Ported To Vala

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

  • #11
    It's is actually nice to program in Vala, but only if you write program with GNOME's libs. If you try soomething else, it's just too bugy.
    And also, projects don't scale well.

    Comment


    • #12
      Originally posted by BlackStar View Post
      I'm intrigued.

      GObject is a tad too heavy for my current C projects (massively parallel, real-time embedded stuff), but I'll definitely have to take a closer look to Vala now. A tool that generates a proper C API from higher level code sounds mighty attractive.

      Indeed, roughly one-third of the code in these projects is boilerplate code: API headers, parameter contracts, argument validation, variable initialization, logging, namespace_object_create(), namespace_object_destroy() etc etc. Maintaining all these by hand is awkward, but you have to be extremely defensive or you won't get far in such a complex project without an operating system to protect you.

      Other than memory overhead, Vala appears to hit all the right spots so far!
      If you're checking out alternatives to C I recommend Nimrod. Like Vala, it compiles to C and takes full advantages of that fact when linking (you can build objects for C in Nimrod, I believe). You have very tight control over allocation, life-cycle, etc like in C (Nimrod is comparable to C in terms of efficiency), however, it also has a focus on productivity like Java/C#/Vala. Unlike Vala's ref-counting Nimrod has an excellent Garbage Collector. It has many other nice productivity features like: type reflection, proper modules, and top notch meta-programming features as well. Nor does it rely on any heavy-weight libs (aka, no GObject).

      I have a lot of good things to say about Nimrod, but I should warn you of it's caveats as well. In terms of productivity, it's a new language and has little-to-no IDE support (besides is young "in house" IDE: Aporia). It's syntax is also very alien if you're used to writing software in C. It's a Python-like syntax with some other oddities, like being case-insensitive and mostly ignoring underscores (so_you CanWrite howeverYouLike). Nimrod requires forward-declarations (mostly), and it's OOP style is not always as convenient as Java/C#'s approach (granted, you can literally make your own Java/C# style definition macros in Nimrod, so it's more of a "missing standard lib features" than a "language flaw"). It also uses Hungarian Notation through out it's standard library, and arguably over-uses operators in some places (mostly my opinions).

      That said once you get used to it it's syntax is really clean and clear, and forward declaration can be gotten around (with the same custom OOP definition macros). I really hate Hungarian Notation though, so none of my libraries will promote it.
      Last edited by F i L; 06 January 2014, 07:35 PM.

      Comment


      • #13
        Originally posted by F i L View Post
        If you're checking out alternatives to C I recommend Nimrod.
        Thanks, this looks interesting. I like the syntax and the fact that it has a GC, and the features on the frontpage sell the language well. However a quick look through the project blog shows that the project is under heavy development right now. Planned features for the next version include a scope change for if expressions (!), which makes me somewhat wary.

        Comment


        • #14
          Originally posted by BlackStar View Post
          Thanks, this looks interesting. I like the syntax and the fact that it has a GC, and the features on the frontpage sell the language well. However a quick look through the project blog shows that the project is under heavy development right now. Planned features for the next version include a scope change for if expressions (!), which makes me somewhat wary.
          I'm not sure where you're reading about a scope change for for/if expressions, but I doubt it would be major at this point. More likely the documentation is out-of-date. One of Nimrod's weaknesses i forgot to mention was poor documentation. Especially with it's standard lib (it's usually slightly out-of-date, and hard to find what you want ATM). One of those chicken-n-egg things though, mostly Nimrod just needs more people helping to maintain it.

          In my experience Nimrod has been very stable (unless you start using macros a ton), but the only real way to know if it works for you is to give it a try . Things are actually nearing 1.0 feature level. If you like the language, but have concerns about stability, i recommend getting on the IRC (#nimrod @ freenode) and speaking to Araq directly.

          [EDIT]

          ps. if you happen to use Arch or Manjaro, nimrod is already in the community repo

          Comment


          • #15
            Originally posted by F i L View Post
            I'm not sure where you're reading about a scope change for for/if expressions, but I doubt it would be major at this point. More likely the documentation is out-of-date. One of Nimrod's weaknesses i forgot to mention was poor documentation. Especially with it's standard lib (it's usually slightly out-of-date, and hard to find what you want ATM). One of those chicken-n-egg things though, mostly Nimrod just needs more people helping to maintain it.

            In my experience Nimrod has been very stable (unless you start using macros a ton), but the only real way to know if it works for you is to give it a try . Things are actually nearing 1.0 feature level. If you like the language, but have concerns about stability, i recommend getting on the IRC (#nimrod @ freenode) and speaking to Araq directly.

            [EDIT]

            ps. if you happen to use Arch or Manjaro, nimrod is already in the community repo
            Yeah, I've already installed it to give it a spin. I'm using Arch.

            Comment


            • #16
              Originally posted by F i L View Post
              Unlike Vala's ref-counting Nimrod has an excellent Garbage Collector.
              not sucking garbage collectors do not exist.
              http://sealedabstract.com/rants/why-...apps-are-slow/

              "C++ Is my favorite garbage collected language because it generates so little garbage"
              -- Bjarne Stroustrup

              Comment

              Working...
              X