Slashdot Mirror


Meet Lux, A New Lisp-like Language (javaworld.com)

Drawing on Haskell, Clojure, and ML, the new Lux language first targeted the Java Virtual Machine, but will be a universal, cross-platform language. An anonymous reader quotes JavaWorld: Currently in an 0.5 beta release, Lux claims that while it implements features common to Lisp-like languages, such as macros, they're more flexible and powerful in Lux... [W]hereas Clojure is dynamically typed, as many Lisp-like languages have been, Lux is statically typed to reduce bugs and enhance performance. Lux also lets programmers create new types programmatically, which provides some of the flexibility found in dynamically typed languages. The functional language Haskell has type classes, but Lux is intended to be less constraining. Getting around any constraints can be done natively to the language, not via hacks in the type system.
There's a a 16-chapter book about the language on GitHub.

16 of 205 comments (clear)

  1. Oh hell no by tietokone-olmi · · Score: 2

    We don't need another "bad ML in Lisp's clothes" language.

    1. Re:Oh hell no by NoNonAlphaCharsHere · · Score: 4, Funny

      [W]hereas Clojure is dynamically typed, as many Lisp-like languages have been, Lux is statically typed to reduce bugs and enhance performance

      "Kill it, kill it! Burn it with fire! Stop it before it breaches quarantine!"

      Shoot it with silver bullets, drive a wooden stake through its heart, burn the body, sprinkle the ashes with salt and holy water, seal the ashes into an iron urn covered with runes, weld it shut and bury it at a crossroads under the full moon. Then dust off and nuke the site from orbit. Even after that, I'm going to have a hard time falling asleep.

  2. So who's behind this new language? by Nova+Express · · Score: 2

    Could it be... SATAN ?

    --
    Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)

    http://www.lawrenceperson.com/

  3. Just what the world needed most urgently... by ffkom · · Score: 2, Insightful

    ... yet another programming language. Next, please work on a new HDMI standard, another E-car charging plug and why not invent another lens-mount for cameras, while you're at it? :-)

    1. Re:Just what the world needed most urgently... by Tough+Love · · Score: 2, Insightful

      Or does the world urgently need another random person on the internet to post random angst to an article that they have not read and most likely would not understand if they did?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    2. Re:Just what the world needed most urgently... by PoopJuggler · · Score: 3, Insightful

      You couldn't be more wrong. New programming languages is exactly what we need especially as we approach the end of "Moore's Law" with the discrete type of fabrication we do nowadays. Sooner or later the world will realize that in order to build really complex software, on the order of functioning neurological networks or quantum systems, we will need to evolve the languages we use to describe those systems so that we can describe them quickly. The software we write currently is dogshit compared what we could be creating, and all these new LISPy functional languages are an attempt to move to the next level. Instead of writing 100 for() loops our languages will need to describe the exact same construct in a handful of instructions. Not machine instructions but language instructions. Creating really advanced software takes so long currently because our languages are primitive. Compare programming a 6502 in assembly back in 1980 to programming in Java nowadays. Using modern languages and compilers you can write code 1,000,000 times faster, clearer and more complex in the same amount of time. Software will never get more advanced without a massive paradigm shift in the underlying languages we use to describe systems that will have ever-increasing complexity, because you can't just squeeze out more lines of code in 8 hrs from the same humans, and you can't just throw more humans at the problem. We need to start coding much much "smarter", almost writing languages that just describe a system in very general terms, and have the computer actually do the "coding." Either way, the future will not be primitive imperative languages like C/C++/Java, but something far more declarative in nature.

    3. Re:Just what the world needed most urgently... by Chuck+Messenger · · Score: 2

      There's no possibility for a better programming language! We already have the ultimate programming language - why would we want another?!

      (BTW, what is the language which we're supposed to be happy with?)

  4. sorry by ooloorie · · Score: 4, Insightful

    first targeted the Java Virtual Machine, but will be a universal, cross-platform language

    This may be nice for Java developers, but I can't think of any significant language that started off targeting the JVM and then successfully moved to another platform. That's because languages targeting the JVM get bogged down by the limitations of the JVM and the get entangled in the Java libraries.

    If you want to develop a new language these days, start by targeting the LLVM.

    1. Re:sorry by ooloorie · · Score: 4, Interesting

      Wow, what a *ton* of bullshit here. Honestly you should be proud - it's not so easy to be so completely wrong.

      By all means, feel free to show any significant language that has managed to make the leap from the JVM to other platforms.

      The most interesting and successful new languages on the JVM, Scala and Clojure, have tried for years to create non-JVM backends and failed to deliver anything other than toys.

    2. Re:sorry by El_Muerte_TDS · · Score: 2

      Java did. Besides running in the JVM it is also quite successful in Android's Dalvik and now ART.

    3. Re:sorry by ooloorie · · Score: 2

      Java did. Besides running in the JVM it is also quite successful in Android's Dalvik and now ART.

      Native implementations of Java have pretty much failed. And Dalvik and ART are just incremental enhancements of JVM.

      I'm sorry if it still isn't obvious: as far as I'm concerned, a "universal cross-platform language" needs to have a decent native code implementation, otherwise it's not "universal".

  5. We love functional languages except using them. by jellomizer · · Score: 5, Insightful

    Functional Languages are really cool in theory. However I find that for Real World development. Your code is often too tight for proper maintenance. Where Procedural and OOP is much better at fixing issues.

    While yes *you* are the greatest developer in the world, and can write code better than everyone else in the world. It doesn't stop the people who pays your bills from giving you bad specifications, or come across problems that were not thought of before.
    In my decades of experience, I have found to be nimble you need to keep humble and figure that your code will not end up like it was planned, so you need to put in hooks for expansion and think on solving issues that are not asked for. As well assuming that they may be some data that could cause your code to break and you will need to fix it quickly.

    Functional Languages often become a bit too dense to fix. And god help you if you want to unload that project to someone else so you can work on something more interesting.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  6. Re:Meh by murdocj · · Score: 2

    How hard is it to see that automatically detecting bugs at compile time is superior to running into them at random at runtime?

  7. Re:What about Scheme? by admin7087 · · Score: 2

    I use Racket for end-user applications and have also heard good things about chicken scheme. Racket is pretty complete and allows you to write powerful GUI applications easily if you can live with a noticeable application start time of >1 seconds and don't need the latest platform-specific gimmicks like animated tray icons or similar things. Proper deployment is a bit unnecessarily complicated and the Racket developers have not always clearly separated their own framework for the DrRacket GUI from what you need for general application development, but overall it's a very good language and tool. It doesn't feel more lightweight than CommonLisp, though, just a bit more convenient in many respects and module system in particular.

    Anyway, I should say that the focus on runtime-checking and loose typing is more of a disadvantage than an advantage. It encourages abstractions like using symbols as selectors rather than static enumerations, and these habits have no advantages. They produce runtime errors that slip easily even through extensive unit tests. Personally, I'd prefer to use a simple and straightforward Algol-clone with much of the expressivity of LISP (as many entities as possible should be 'first-class') but nevertheless a strong focus on compile-time checking and zero-cost abstractions, but haven't found a suitable language yet that also supports cross-platform GUIs.

  8. Re:What about Scheme? by StevenMaurer · · Score: 3, Interesting

    A programmer who knows nothing beyond the likes of those is not well rounded and better get adjusted to the idea of being a galley slave for their entire career.

    If you aspire to the boardroom, I strongly suggest you learn a bit of PowerPoint, excel, and basic business understanding, The language used at that level is all P/L calculations, by which I don't mean PL/I, but "Profit and Loss".

    Insofar as fad languages are concerned, their main problem besides their terrible tool support, microscopic communities, non-existent code/library base to solve common problems, and lack of a clear niche that really only they fill best - is that the vast majority of actual programming work lies in understanding requirements and coming up with a reasonable set of approaches, designs, and patterns to fill them. For that, you don't need intellectual masturbation. You need to be smart and experienced enough to actually understand how to create a fully realized architecture actually capable of working, and not immediately falling over under load (with inscrutable error messages).

    Really, the only use that so many different hobby languages provide is a form of job lock-in, and a gateway keeping out people who aren't smart enough to solve the company's real problems.

    // Senior/Enterprise Architect

  9. Re:What about Scheme? by AuMatar · · Score: 3, Insightful

    One or two places deciding to use Ruby or Eiffel isn't a sufficient enough base to make me wrong. Ruby was a flash in the pan and is basically dead.

    --
    I still have more fans than freaks. WTF is wrong with you people?