136 karma · joined September 12, 2011
That's correct but even without this startup time Clojure is significantly slower than other functional languages. Look at SBCL and Racket in
http://shootout.alioth.debian.org/u32/which-programming-lang...
That doesn't mean that I don't like Clojure. I am even considering it for a business project. But Clojure is definitely unsuitable for small apps (shell scripts etc.)
Btw the benchmark listing doesn't take LuaJIT into account. This JIT is the fastest I have ever encountered, way ahead of JVM regarding startup time.
"Da AOT-Code über verschiedene Programmausführungen hinweg bestehen bleiben muss, ist die Leistung von mit AOT generiertem Code nicht so gut wie die von mit JIT generiertem Code."
I never understood why the JVM folks didn't get along to develop a JIT cache. That means the first time I start a Java program it would run normally slow. But from the second run on it would use the native cache and run immediately fast with native performance. That would eliminate many performance problems of Java.
I know that there already is a solution which uses a Java server to serve the application as client which reduces the startup time but this is not very convenient to use.
The slowness of Clojure is a typical problem of all languages which are based on JVM. Racket Scheme, for instance, which is a Lisp like language but NOT based on JVM, needs just 0.062s to print "Hello World" (compiled) on my system.
Yes currently, but price depends on demand. On the other side, if FPGAs remain expensive then Assembler could become even more important to put as much code as possible into an fpga.
> can be likened more to C than assembler.
For that reason I mentioned the word Assembler in quotes. Btw VHDL is much more like Ada than C while Verilog is different from both.
6502 isn't dead, it has even been relaunched:
http://www.h-online.com/open/news/item/Relaunched-the-6502-m...
6502 was my first processor, and it was real fun to learn Assembler. I used also figForth and learned from the ground up how it was implemented. Amazing days!
Today Assembler isn't fun anymore.. I don't even know the exact name of my current quad core :)
Could it be that FPGA programming will be the next golden age of "Assembler"? Content industry works hard to lock computer hardware with DRM. So if we want to keep our freedom then we'll have no other choice than to build our future computers ourselves - again.
This article motivated me to consider Clojure for a new business project. Clojure can use the JVM infrastructure, that's a big advantage. Java has become too boring for me (C# also).
If you wan't GPL to be non-violent then you also have to forbid GPL usage in embedded systems, because air planes, cars etc. also can kill people.
And don't forget that Linux users normally pay back to the community. Look at SE-Linux, or SE-Android, for example.
Do you realize that this report is written in "electronic design", or an embedded systems journal? It's not talking about the PC desktop here.
I don't know the exact numbers but Ada still plays a big role in security critical systems (airplanes etc.).
> Managed languages lead to "applications that are difficult to maintain over time"?
I think this is true regarding to embedded systems because they evolve very fast. Microsoft would have to take much effort to be on par, for many different kinds of embedded systems. The second point is that Microsoft's support for their operating systems is not unlimited. So if you have a long lasting embedded system technology then you simply cannot afford to use .NET.
Apple doesn't need to port their software to Windows or Linux at all but simply allow to use OSX in an emulator. Even this is forbidden by Apple (it's not a surprise).
I think it was a huge mistake of Apple to allow iOS development on Macs only. If they hadn' make this mistake almost all people would develop for iOS mobile devices now, and Android wouldn't have had any chance to win. In some sense Steve Jobs himself was the main reason that Android became so successful :-)
> In addition, the cost of a Mac for development ($599 for a mini) is not stopping anybody,
It has stopped me. I have a pretty good PC, and I never accepted that I would have to buy an additional Mac solely to fed my iphone. It's a waste of room and money. For that reason I use Android.
Btw. one of the first steps to zero-defect software is an appropriate programming language. I wouldn't choose C oder C++ but Ada or SPARK or so.
How nice Unicode is I always realize when I copy and paste some foreign text from somewhere into Emacs or Racket Scheme and everything works just fine.
When I discovered Lua the first time I was enthusiastic. The JIT is so fast, and everything seems to be fine. But missing Unicode is a big disadvantage for Lua. Unicode is a must to have for modern languages. It makes things so much easier when you know you don't have to convert any fonts because they are all presentable in Unicode.
I doubt that functional programming in C++ will be as elegant and effective as in a real functional language where everything is functional. The approach of C++ seems to be and to support "everything". But will that support more maintainable code? I don't think so. Quo vadis, C++?
Btw Implementations like LuaJIT demonstrate that virtual machines have become amazingly fast. So, even for performance you don't need to be stuck to C++.
Wouldn't it be much easier to use a high level language like Scheme which has these nice features built in already, and let C/C++ just do the lower level stuff they were created for?
You are absolutely right. Eye candy can quickly become eye straining.
Hacker News is successfull not only because of its content but also because of its design. It's simple and pragmatic, as it should be. I always need only seconds to read the headlines of the whole page.
Hacker News, please don't change anything!
Another option (addon) would be to use commented invariants like in SPARK which are tested against the code by an automatic verification system even before compile time. To get an impression what it means, please read:
http://www.adacore.com/home/products/sparkpro/tokeneer/disco...
I also like Rust. I haven't tested it yet (will try it) but the first impressions are good. But I think Rust will not be on par with ADA 2012 until it supports range values (like x : Integer Range 1..100) and contracts at least.
Asserts are good for the beginning but a language for really big software should have verification mechanisms which are implemented in SPARK (a subset of ADA).
http://www.apl.jhu.edu/~hall/Lisp-Notes/Macros.html
This article gives a good insight what about LISP is so awesome:
http://www.defmacro.org/ramblings/lisp.html
I also vote for Ada because this is the best language I know to write maximum quality software. I would love to make money for living by coding Ada for Embedded Systems.
This is not evolution, it's exactly the opposite. Take the cake sample. You have a goal (the cake) and let the AI system find a way to reach that goal. Evolution has no goals at all.
These are the two distributions I expect to be successful in the long run.
http://technicaldiscovery.blogspot.com/2011/10/thoughts-on-p...