Hi, On Wed, Apr 23, 2014 at 6:17 PM, Charles Belhumeur <[email protected]> wrote: > > Experience has given me a preference for low-level machine compilable > languages Assembler and like the various flavors of C.
Most other popular language implementations are written in C. (Usually it's loosely C99 + POSIX + extensions, due to heavy *nix bias. Well, you've gotta start somewhere.) From that alone, you could say, "C is good enough for everything". Or you could say, "It's so weak, it has to be extended." The simple truth is that everybody's needs are different. But in particular, most people aren't developers, and most OSes don't come with any compilers (installed) by default. Thus, for simple tasks (that aren't speed intensive), you're usually given some kind of interpreter, e.g. sh or awk or bc or rexx or qbasic or cmd or powershell or similar. After all, there's no advantage to writing tedious boilerplate just to calculate a few numbers or manipulate a text file or run several programs in batch style. > I don't like languages like JAVA that ride a non-machine specific protocol > and ride atop emulators or interpreters on top a browser on top an OS on top > sophisticated hardware. They say the JVM was inspired by Pascal p-code. It's meant to be portable. You compile once, and then all you need is to port the interpreter in order to run anywhere. If you make the interpreter fast (or have a JIT), then speed won't be an issue. And BTW, I think the Hotspot VM is written in C++. It's really not much different from a compiler that internally translates to intermediate code before making that into machine-specific code to run natively. Of course going directly to machine code is maybe faster overall, but machine code is not portable. (Granted, portability is a ruse, almost nobody even pretends to care about lesser OSes and arches, only the billion-dollar platforms, which IMO defeats the point.) > They tend to be problematic, flaky, because > you don't know what all the routines you ride are doing or if they're > reliable across all implementations. I don't grok Java, but even I know that there are many VMs and many different compilers. No, by default, you don't know how reliable they all are. Everything has bugs (or limitations or design flaws), that's unavoidable. All you can do is try to minimize it. Many language implementations succeed at this, but others fail. IMO, I find it's best to have a clear specification for the language and a decent test suite. Java has both, IIRC. So, as long as those stay consistent with your implementation, you have at least some reassurance about how it will function. > And the hit in performance you take riding on top all those routines > written by wankers really sucks compared to what you get from machine > specific compiled code. I spend enough time looking the hourglass > waiting for JAVA scripts to run as it is. I don't want to add to this > wank'in time wasting practice. I'll admit that a modern web browser is probably 100x too complicated for its own good. What started out simple became a horrible behemoth. I don't think Javascript is necessarily the best choice for heavy-duty apps, but that's just my opinion (and luckily nobody cares what I think). But even Javascript often has a JIT these days. I too would rather just run something offline on my desktop than through a browser. But I guess there are some things you can't do without Javascript (and some environments where that is the most obvious target). ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
