Meet Lux, A New Lisp-like Language (javaworld.com) 205
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.
There's a a 16-chapter book about the language on GitHub.
Oh hell no (Score:3)
We don't need another "bad ML in Lisp's clothes" language.
Re: (Score:2)
Or a bad common lisp in Haskell clothing?
Re: (Score:2)
Thank you. To which I add "Kill it, kill it! Burn it with fire! Stop it before it breaches quarantine!"
Re:Oh hell no (Score:4, Funny)
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.
Re: (Score:2)
To stop compensating for insufficient skill with the perpetual study of new tools.
Re: (Score:2)
>The whole point of tools is to compensate for insufficient skills. If you think otherwise, [...]
But I don't. Read the comment over.
Re: (Score:2)
So how come your comment doesn't at all relate to the substitution of fundamental skill with the chasing of "the tool that'll wipe my ass, this time for sure"? The computing equivalent of toilet paper was invented far before Java, after all.
Re: (Score:2)
The more mutually-incompatible Lisp-like languages the better, I say.
Maybe we could follow this up with yet another incompatible Prolog-alike!
So who's behind this new language? (Score:3)
Could it be... SATAN [wikia.com]?
Just what the world needed most urgently... (Score:3, Insightful)
Re: (Score:2)
Can we bring back HD-DVDs and the DIVX videodisc format while we are at it?
Re: (Score:2)
How about another USB connector standard?
Re: (Score:2)
Not until we solve the mystery of how the first insertion is wrong 90% of the time when in theory it should be 50%. A working theory of this could lead to free energy, faster-than-light travel, or gas station sushi that won't make you sick.
Re: (Score:2)
What really gets me is how most of the time I insert the USB connector correctly only on the THIRD try. That's proof of hyperdimensional geometry right there...
Re: (Score:2)
Re: (Score:2)
Interesting, given that micro plugs are rated for more insertions than minis:
"The newer Micro-USB receptacles are designed for a minimum rated lifetime of 10,000 cycles of insertion and removal between the receptacle and plug, compared to 1,500 for the standard USB and 5,000 for the Mini-USB receptacle." [ https://en.wikipedia.org/wiki/... [wikipedia.org] ]
Re: (Score:3, 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?
Re: (Score:3, Insightful)
Re: (Score:2)
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.
So that what used to take a week to write in 6502 asm now takes less than a second to write in Java? Not disagreeing with your post, just taking issue with your scaling factor in the interest of making a better argument. Agree that OP couldn't be more wrong.
Re: (Score:2)
So that what used to take a week to write in 6502 asm now takes less than a second to write in Java?
But it doesn't. You'll spend a week upfront gathering the necessary black box libraries, and a day to write all the glue needed to write your one-line program.
Re: (Score:2)
Not to mention collecting the newts' eyes and frogs' toes...
Re: (Score:2)
Re: (Score:2)
Oh thanks for dumping that word in here. Now the whole thread smells bad!
Re: (Score:2)
Dozens of LISP-derivatives have also been invented over the years, and yet not even GPUs or other architectures (that one could think to better fit the LISP way of applying side-effect-free code to lists of things) is written in any of those derivatives at a significant scale.
If you look at newer languages that have become popular in the past 10 years, th
Re: (Score:2)
Re: (Score:2)
You do realize that LISP is one of the older programming languages, around for decades, and apparently, its popularity stagnates on a pretty low plateau?
To me, there is another reason why LISP would never gain popularity these days -- recursive. To be efficient in this language, one should be able to think and program in recursive which requires a complete understanding of what is to be done or the program could easily go into an infinite loop. Most newer (so called) programmers nowadays can't think or program it that way. Instead, they think and program more in iterative way. Also, recursive has a down side which is limited memory. In order to be able to p
Re: (Score:2)
You are joking, right?
Re: (Score:2)
Re: (Score:2)
I see your 1978 and raise you a 1970.
Re: (Score:2)
Prolog failed because the syntax is horrifying and the evaluation method is...weird. I wrote an entire compiler in Prolog once, it worked and worked well, but it was just a functional program with bad syntax. The compiler would have been better if written in Haskell (which, incidentally, the compiler was for, as I did not have a Haskell-like compiler at the time).
Re: (Score:3)
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?)
Re: (Score:2)
(BTW, what is the language which we're supposed to be happy with?)
Probably either Brainfuck or Visual Basic.
Re: (Score:2)
That, and a type system.
Re: (Score:2)
Brainfuck with a type system. Wow. Now there is an interesting idea.
Re: (Score:2)
As long as they don't have billions of dollars and lobbyists galore forcing the public to use it, who cares?
sorry (Score:5, Insightful)
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.
Re: (Score:2)
If you want to develop a new language these days, start by targeting the LLVM.
Or Scheme, if you don't want to drag tens of megabytes of C++ code around.
Re:sorry (Score:5, Interesting)
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.
Re: (Score:3)
Java did. Besides running in the JVM it is also quite successful in Android's Dalvik and now ART.
Re: (Score:3)
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".
Re: (Score:2)
By all means, feel free to show any significant language that has managed to make the leap from the JVM to other platforms.
Java itself - it got ported to .NET vm and renamed to C# 1.0...
Re: (Score:2)
It didn't just get "ported", it addressed the major problems of the JVM: poor native code interfaces, lack of generics, bad semantics for built-in types, and lack of value types.
The differences between the .NET VM and the JVM mean that the .NET VM is actually a reasonable target for a general purpose language that later gets an LLVM backend, while the JVM is not.
Re: (Score:2)
Clojure is used in the browser with a JavaScript implementation and it is not really a toy, but whatever.
Re: (Score:2)
I didn't say "all languages based on the JVM are useless/toys", I said "languages targeting the JVM get bogged down by the limitations of the JVM and the get entangled in the Java libraries."
But, yeah, whatever.
Re: (Score:2)
Kotlin suffers from the same limitations as Clojure and Scala (both of which also have JavaScript backends), and in addition is pretty obscure.
All those languages are just rearranging deck chairs on the JVM Titanic.
Re: (Score:2)
Don't forget Ceylon :)
Re: (Score:2)
And Gosu and Groovy :-)
Re: (Score:2)
Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.
That doesn't at all sound like "leaping from the JVM" has been accomplished yet.
Re: (Score:2)
Who? Seriously? who?
Re: (Score:2)
The intellij guys.
Re: (Score:2)
AFAIK, there are no widely-used backends for Clojure other than JVM and JavaScript (there have been two attempts at LLVM backends and another one at a CLR backend). Almost all Clojure code is run on the JVM in practice.
Re: (Score:2)
Again, you're missing the point. A JavaScript backend is easy to do for just about any language because it doesn't have to be very good.
Lux might conceivably replace Clojure or Scala (though I doubt it); it's in the same JVM-derived language family.
But Lux will likely never compete with general purpose ("universal") languages like Go, Swift, C#, C++, etc.
We love functional languages except using them. (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.
Re: (Score:2)
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.
That's not the experience we had at Ericsson [erlang-factory.com].
I can't help but think that you haven't really been involved in designing, building, fielding, and maintaining large systems based on FP. I have. With Erlang [erlang.org] in particular we saw a four [erlang.se] to ten fold increase in productivity.
And "too dense to fix" didn't even show up on the radar as a problem. Not by a long shot. Quite the opposite in fact, not having to wade through page after page of boiler plate (that could still trip you up, mind you) does wonders for focusing
Re: (Score:2)
Maybe with enough training and experience, one may be able to pull it off, but a future maintenance programmer may not be able to follow your technique well. It increases the hiring and training burden for your organization.
There are techniques that work better under ideal conditions, but ideal conditions are hard to come by.
Re: (Score:2)
Re: (Score:2)
The hell does that mean?
In coding if you are often too clever you often make code that is very dense in mathematics. Taking advantage of bit overflows, and other mathematical functions that happen to perform the behavior you are trying to achieve. For example If you are making a Mario type of game, you can use a sine function to simulate the jump effect. vs. making some more codier version where you have a loop that is decrementing how many pixels to to move up after each step.
The first approach is good and will get you an A+ o
Great news for my ( and ) keys (Score:2)
I am going to switch today!!! (Score:2)
Screw productivity and ever finishing a damn thing.
Use case? (Score:2)
Of course (Score:2)
Ugly syntax (Score:2)
One of the nice things about lisp is that it is so clean. Lux appears verbose and cluttered with odd symbols.
Lisp:
(defun hello ()
"Hello, world!"
)
Lux:
(;module: {#;doc "This will be our program's main module."}
lux
(lux (codata io)
[cli #+ program:]))
(program: args
(io (log! "Hello, world!")))
Re: (Score:3)
How hard is it to see that automatically detecting bugs at compile time is superior to running into them at random at runtime?
Re: (Score:2)
Think of compiling as automatically generated unit tests. Do you feel better about it now?
Re: (Score:2, Interesting)
No. But in reality nothing other than C, C++, C#, Java, Javascript, Perl, PHP, Python, Objective C, and Swift are. You can find one or two instances of something else, but basically it means the lead programmer had a hardon for the language- everything else combines makes up about 1-2% of all programs written. And really the last 2 in the above list exist only because Apple decided they wanted to try for developer lockin.
Re: (Score:2)
You'll see a couple of others in niche domains, not just because of the lead programmer's obsessions. None of those languages is particularly suitable for safety critical software, for example, which is why Ada is still being used.
Re: (Score:2)
Objective C was developed by Brad Cox and Tom Love at their then company Stepstone [wikipedia.org]. It was then used by NeXT for NextStep. It got into Apple only because NeXT was bought by Apple and NextStep was the basis for Mac OS X. It had nothing to do with developer lock-in.
Re: (Score:2)
It was then used by NeXT for NextStep. It got into Apple only because NeXT was bought by Apple and NextStep was the basis for Mac OS X. It had nothing to do with developer lock-in.
That's how it got into Apple, but it continued to be promoted by Apple mainly in the interest of developer lock-in.
Re: (Score:2)
You can make your argument about developer lock-in for Swift, but not Objective C.
Re: (Score:2)
Except that they also supported C++ via Carbon. They killed it in favor of Cocoa not because it was preferred, but because they wanted to create lockin.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Maybe it was continued to be developed by Apple otherwise they would have had to rewrite their entire damn OS? Microsoft used C++ and developed it because otherwise they would have had to rewrite their entire damn OS?? Maybe? Seriously, languages have something called momentum, and once you started (or bought it, like Apple did) you are stuck.
Where do you people get you hate from?
Re: (Score:2)
Goddamnit. Why can't you loudmouth know-nothings just fuck off already?! You're a pox on the Internet.
Typical Apple cultist?
Re: (Score:2)
Just because someone states normal engineering practice which involves momentum of tools used to implement a system, just like happened in Microsoft and pretty much all companies does make not one a cultist. Buying a system in language X and going on with it is not not bad, it is normal.
Besides, Objective C is not that bad. IT is certainly better than programming in C, and the clusterfck that is Qt or Gnome. Have you actually ever used interface builder? It is a brilliant piece of design. Apple took it from
Re: (Score:2)
...the clusterfck that is Qt or Gnome. Have you actually ever used interface builder?
Hah, you clearly have never used Qt, but you are willing to mouth off about it anyway. When I interact with Apple cultists I always come away feel like I got something on me.
Re: (Score:2)
Yes, but the only reason anyone programs in it is that it was one of only 2 supported languages for MacOS and the only supported language for iOS for a very long time. Nobody actually liked the language. There was no critical mass of people begging Apple to make their platforms work for Objective C, they wanted to try and lock developers into a skillset that didn't transfer.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
"There is no reason it had to infect OS X"
OS X was not a rewrite, it was NextStep v2. You take what is there and go on with it. Besides, Objective C is waaaaay better than C++ and God forbid, C.
Re: (Score:2)
in reality nothing other than C, C++, C#, Java, Javascript, Perl, PHP, Python, Objective C, and Swift are
Kind of pointless trying to come up with a definitive list of languages that supposed to be the only ones in use when there exist many others with large industries revolving around them. I will add SQL and FORTRAN to the list. Ruby. Eiffel. So many in which important systems are written and not on your list.
Re: (Score:2)
SQL isn't a programming language. Its a database language used with other languages. You wouldn't decide to use it instead of anything on the list above.
Nobody actually uses Ruby or Eiffel for anything serious. I'll accept the addition of FORTRAN but purely for legacy reasons, nobody does new development in it.
Re: (Score:2)
It is not in doubt that SQL is a programming language, it has been proved Turing-complete. Not a general purpose programming language, I will grant you. You are dead wrong about Ruby or Eiffel for "anything serious". You are dead wrong [researchgate.net] about Fortran.
Re:What about Scheme? (Score:4, 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.
Re: (Score:2)
I use Ruby for lots of serious things, but whatever.
Re: (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 y
Re: (Score:2)
If you're thinking about Chicken, I'd strongly suggest also trying Chez these days. The quality of implementation is quite incomparable.
Also, static enumerations are probably not something you'd expect to find in the language family that adopted CLOS (or a CLOS-like system, if not the canonical CLOS) to solve the expression problem.
Re: (Score:2)
I used Scheme for a class in college, mainly to demonstrate some AI concepts like states.
As for the real world, I see four types of languages used:
1: The mainstream Web languages. PHP, ASP, node.js, etc. .Net, Java, Objective-C, assembly, perl, and python. They are not shiny and new, but they are t
2: The latest language in vogue. Rust and Swift 3 come to mind, because I keep getting E-mails about jobs asking for five years of Swift 3 for minimum required experience.
3: The old standbys, C, C#, C++, VB
Re: (Score:2)
Re:What about Scheme? (Score:4, 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
Re: (Score:2)
You clearly identify as someone who has no exposure to anything outside a limited set of mundane languages. Your implied bifurcation fallacy between "fad languages" and "languages I know" is enough to see that. LISP, for example, can be pigeonholed as neither a fad language nor a hobby language. The Chinese have a term for your kind of world view: "frog in a well". The frog spends its entire life at the bottom of the well, and far above it can see a small part of the sky, which it believes to be the entire
Re: (Score:2)
non-existent code/library base to solve common problems
Well, if you keep hitting common problems, you'll never advance to solving uncommon problems like specialists do. That is the "clear niche" you're asking for. Take AllegroCache, for example. How you'd implement something like that in the language-hitting-common-problems of your choice is anyone's guess, but it will be messy in any case.
Re: (Score:2)
Scheme is now almost a history in college classrooms too. It was common back when MIT, Berkeley, and other top CS programs used SICP in their introductory courses. Now that many of those schools have dropped SICP and replaced it with a Python based course, the LISP now is on much weaker footing in the college instruction.
Re: (Score:2)
Re: (Score:2)
What "advanced stuff"? Please. As the baby boomer generation of the CS professors is dying out or being retired, the LISP is going away with them. LISP brought a few cool ideas into the programming world, such as functions as first class citizens or other elements of functional programming to the masses, but none of that justified compulsive teaching of LISP for like a half of century. It's quite telling when you observe that LISP is being used in the academia for DECADES and yet it just doesn't stick with
Re: (Score:2)
And the author is choosing to avoid 2 years by bootstrapping an established platform.
Re: (Score:2)
Understood and you're most welcome to build your own runtime.
The author is just choosing the well worn path of, say, clojure - which started life on the JVM but runs to varying maturity on the commonly deployed platforms of Javascript (in browser) and CLR (windows).
Re: (Score:2)
Why should we care? Porn is ubiquitous, and you can see much kinkier stuff from your local web-pimp. Hop over to fetlife and you can find someone to do it with. If it's that he paid: again so what? Prostitution ts legal in (parts of) the US and Canada.
Oh the horror! Trump may have done something that I* do! But it's bad when he does it! (*Not saying you're into peeing hookers; likely your tastes would make Trump blush.)
But really, what does this have to do with Lux?
Re: (Score:2)
He doesn't need to say anything. It's already been thoroughly debunked and the only people repeating it are idiots who haven't gotten the word. The whole thing was a scam by a guy at 4chan. Once you actually look at the story it just falls apart on it's own. Even the NYT refused to print it.
Re: (Score:2)
I love you