Announcement

Collapse
No announcement yet.

Leaf: A New "Soon To Be Great" Programming Language

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

  • F i L
    replied
    Originally posted by TheBuzzSaw View Post
    Actually, we do. It's not the quantity of programming languages that is important; it's having a language that properly encompasses everything we've learned. C++ and Java are just two examples of language that have overstayed their welcome.
    I agree, mostly. One is purposely gimped. The other is over complicated and difficult to make memory safe.


    I would kill for a language that is native (compiled) but as expressive and modern as C# or Lua. Is Leaf that language? It uses LLVM, so that's a big first step. Sadly, the syntax is awful, and I don't feel any amount freedom granted from all the highly expressive new features.

    In my opinion, there is a strong demand for a language between C++ and Java. C++ has too many technical aspects that make it unproductive, and Java requires a VM (and has awful memory management). This mythological third language could drop all the legacy baggage of both languages, keep C++'s native/compiled benefits, and incorporate expressive syntax improvements from Java, Python, C#, etc.

    On a side note, if someone could please write a non-Ruby language to blow PHP out of the water, that'd be fantastic.
    I agree with this as well. However I believe I've found the solution: The Nimrod Language. I'm used to C-style syntax, so it's somewhat-alien design was a bit off-putting at first. I still have my gripes with the standard lib (though it sounds like they plan on fixing most of them), but at the end of the day it's really a great language with a lot of potential. Plus, it's macro system allows you do some really creative things.

    It builds to C (but does it fast) which is actually awesome for linking. It's GC rocks, performance and power are excellent, and it's syntax is simple enough for script-kiddies. I have plans on writing a small game-engine in it using it's advanced AST manipulation abilities to simplify much of the editor-to-script boilerplate (here's my design if you're interested).

    Leave a comment:


  • XorEaxEax
    replied
    Originally posted by TheBuzzSaw View Post
    C++ and Java are just two examples of language that have overstayed their welcome.
    While I don't like working in either language, I can't agree with them having 'overstayed their welcome', it's when developers stops using them that this has occured. And as of now they are still extremely well used. Not that I'd personally shed a single tear should they be abandoned.

    Originally posted by TheBuzzSaw View Post
    I would kill for a language that is native (compiled) but as expressive and modern as C# or Lua.
    I personally don't find Lua particularly expressive but I do like it, very easy to embed and very clean (try out l?ve if you are in to game programming!), however regarding your wish, have you taken a look at the Rust language?

    Originally posted by TheBuzzSaw View Post
    In my opinion, there is a strong demand for a language between C++ and Java. C++ has too many technical aspects that make it unproductive, and Java requires a VM (and has awful memory management).
    Again I'd say take a look at Rust and also possibly Go, although the latter has required automatic GC which may not fit into your demands. Also there's Nimrod which I find quite interesting, it compiles to C code and then to native code, it has reference counted garbage collection but also allows manual memory handling, here's a nice small introduction to the language: http://picheta.me/articles/2013/10/a...-features.html

    Leave a comment:


  • TheBuzzSaw
    replied
    Originally posted by prodigy_ View Post
    If there's one thing the world needs, it's more programming languages!
    Actually, we do. It's not the quantity of programming languages that is important; it's having a language that properly encompasses everything we've learned. C++ and Java are just two examples of language that have overstayed their welcome.

    I would kill for a language that is native (compiled) but as expressive and modern as C# or Lua. Is Leaf that language? It uses LLVM, so that's a big first step. Sadly, the syntax is awful, and I don't feel any amount freedom granted from all the highly expressive new features.

    In my opinion, there is a strong demand for a language between C++ and Java. C++ has too many technical aspects that make it unproductive, and Java requires a VM (and has awful memory management). This mythological third language could drop all the legacy baggage of both languages, keep C++'s native/compiled benefits, and incorporate expressive syntax improvements from Java, Python, C#, etc.

    On a side note, if someone could please write a non-Ruby language to blow PHP out of the water, that'd be fantastic.

    Leave a comment:


  • sarmad
    replied
    Lots of mockery; lots of discouragement; are there any ethics left on the internet? Wow

    On the subject, I think I understand his logic behind the if=do syntax. I'm guessing he is treating code as expressions, so the ? expression is returning a code block that is then executed by 'do'. If that's true then he should be able to do something like:
    do get_my_code_block()
    It's an interesting idea but I don't think it justifies the lack of an if-statement.

    While I share many people's concern that we might not need yet another language, I would prefer to wait before making judgement since the project is still "in its infancy" and that the syntax will most likely change over the coming years according to the author.

    Also, I'm surprised at people saying Leaf is not needed and that he should use Python instead. If we don't need Leaf, why do you think we needed Python then?

    Leave a comment:


  • Ancurio
    replied
    Originally posted by Detructor View Post
    well, it's true. But after I started to program in Visual Studio (which was the first IDE I got to know), everything else was a disappointment. The only IDE that I ever liked, aside from Visual Studio, was Netbeans. Most people don't seem to like it though.
    You never tried QtCreator?

    Leave a comment:


  • volca
    replied
    I agree with the guy mentioning Rust. Some unusual concepts, but it is non-verbose and standardizes various pointer ownerships and safe/unsafe code handling well, as it does introducing the task model similar to go or other modern languages.

    Mentioning Go - I think the syntax is a bit weird (I am used to program in C++).

    Leave a comment:


  • Tgui
    replied
    Originally posted by Detructor View Post
    well, it's true. But after I started to program in Visual Studio (which was the first IDE I got to know), everything else was a disappointment. The only IDE that I ever liked, aside from Visual Studio, was Netbeans. Most people don't seem to like it though.
    Tons of VIM, Eclipse work for me in the past. Then we had to crank out some C#. I figured I'd hate everything about it. Goddamn if C# is livable and Visual Studio a fantastic IDE!

    Leave a comment:


  • ciplogic
    replied
    No chance as for me

    Disclaimer: As a compiler writer myself (somewhat) I can say that even as my project (in which I do believe in) does not have a clear (good) future, I think Leaf will also not have it either.

    The reasons are basically: marketing, frameworks, tools, support, scientific papers.

    Marketing:
    - languages like C#, Go, Java, and even Python and Ruby they surged when they were really heard everywhere. Phoronix means some exposure, but if is not Apple, MS, etc. or another company is a dead start
    - marketing itself is circular: people using the language L (no pun intended) even they are happy with it they cannot change already set mindsets that C++ is the best language, Java is the best language, Python is ... etc. When the manager hears about this L language, he doesn't understand know it, and he will be afraid to invest in it

    Frameworks:
    - there are many clean languages (Ruby, Python, or D comes first to mind) but without frameworks they are not mainstream or not enough mainstream. If you have to make an application with an window to get some data to fill a form, people don't care if is ugly XML + C++ (Xaml and C++ for example, or ObjectiveC + UI Builder) as users don't care about the language. Not having web/UI frameworks do not justify anyone to start using any language for real work int he first place

    Tools:
    - a syntax highlighting fixes typos at least
    - code completion can expose a different API than we usually go

    Support:
    - let's say I like the language, and tomorrow I am sure that my project will be written in Leaf. I start implementing, and after 2 months, there is an "in-production bug" and there is just one person that can fix it (the maintainer). But the maintainer is busy with a new syntax to write a mixin. He fixes after a month my bug which I had to work around it and when I updated to LLVM 3.8, everything crashed again. I need this to support iOS 9.0, and the maintainer is too busy because the fix for the first bug gives a performance regression in parsing mixins. After another three months the bug is fixed. But I lost the opportunity window of the iOS 9 launch

    Scientific papers:
    - some languages do succeed "through the back door". Languages come and go, but a theoretically powerful language can get acceptance at least for a class of problems. Leaf doesn't seem to be this language for now. I looked for any papers supporting Leaf and are not so many to be found.

    Leave a comment:


  • doom_Oo7
    replied
    On modern windows I think that you have to get your drivers signed by Ms if you don't want to reboot and enable a special boot flag only for this purpose. And I'm pretty sure ALSA isn't on OSX.

    Leave a comment:


  • vanag
    replied
    Driver language?

    I would prefer a functional language compiling to platform specific C code for making device driver writing portable and easier.

    Something like OCaml but for drivers. Write once generate everywhere. Probably it would be a DSL but it should allow true portable device drivers.

    And why not?

    The specifications do not mandate an OS and in the majority of cases not even a specific CPU architecture. Imagine a program that generates C code for a USB stack in different OSes like minix3/reactos/illumos.

    Moreover it could hook via C to natural semi cross-platform specifics. Like import opengl.kms or import sound.alsa and so on. These things are cross-platform.

    I do not see why something like that cannot happen. Even if performance is a concern it could co-exist with natural platform drivers. But in principle one could write specific hooks in his hobby/professional/research kernel user/kernel space like client/server and have crossplatform kernel/user space management of the device. Do not have a driver for your windows box or minix3 box?

    Download the programs / generate and compile.

    One should also be the ability to verify. For example one could simulate hooks in software and verify the driver in his IDE in user space.
    Moreover the impendance matching from specification to driver should be also minimized and for this reason it should be fairly high level (the code generation should find a performant solution). Keep in mind that much of the concurrency in specs could be grasped with joint calculus.

    Do you know of any such effort?

    Leave a comment:

Working...
X