7 ms·
At this point in computing history, your language needs a stronger raison d'être than "Python isn't statically typed, and C++ has awkward syntax!"; especially c
by apl 16y ago
At this point in computing history, your language needs a stronger raison d'être than "Python isn't statically typed, and C++ has awkward syntax!"; especially considering that 99% of all new languages never get off the ground. I'm virtually certain that there's something out there that fits the bill.
If not, contribute to something that gets close. Go, Scala, Haskell; whatever works. [Obviously, I do realize that building compilers/interpreters/parsers/etc. can be fun: if that's the point, disregard this.]
- bad_user 16y agoAll of them suck: Go doesn't have parametric polymorphism and feels half-baked, Scala is not compiled to machine code and is awkward in his own unique way, and for Haskell you need a PhD and the compiler's behavior is not at all transparent and comes back to haunt you. I've stopped searching for the perfect language some time ago and just don't care anymore.
- mahmud 16y agoLearn an ML dialect and be happy.
- silentbicycle 16y agoI'm hoping to see a fortune cookie that says that, someday. ("Learn an ML dialect and be happy in bed"?)
- Rusky 16y agoYou don't need a degree to use Haskell. Just because it's a research language doesn't mean it requires a lot of research to understand or use.
- bad_user 16y agoIt was a figurative statement, and you can't really say that Haskell doesn't have a steep learning curve. Every language sucks in one way or another; and when I'm saying "language" I'm also talking about the implementations since you can't really separate them when working. It's funny that the fastest way to get downvotes on discussion boards (other than saying something really stupid) is to criticize technologies.
- jbermudes 16y agoI'm not sure if that's true. While newer languages like python and ruby have taken the desktop app and web app arena by storm, most system/embedded level stuff is still done in C/C++. The usual arguments for this are that A) The language gives you more control over memory management so you can squeeze as much performance out of every cycle. B) There's a ton of existing libraries and legacy code in these languages. (Arguably one of the only reasons C++ gained any sort of traction was because of its advertised compatibility with C) We've put up with the "shortcomings" of C (most programmers learned or think in OOP) and C++ (abundance of so-called gotchas and quirky areas of the language, Alan Kay's famous quote about C++'s OOP) and it still leaves much to be desired in my opinion. Java was an interesting development, but its GC disqualifies it for many systems or high-performance programming until recently. I don't have much experience with obj-c but it looks like another contender in this space as well. There does seem to be a desire for a true "heir" to C as evidenced by D, Google's Go, and Mozilla's Rust. In fact, I'd be happy if someone just took the Java language and stripped out the GC instead of trying to restrict myself to a "safe" subset of C++. I'm rooting for all of these projects because I'd love to see some of of the benefits of modern programming language theory brought to this sector of programming. This is an area where when there's competition everybody wins.
- stygianguest 16y agoHis example is also completely unconvincing. I just don't see the problem he is trying to solve here. Unless you take the absence of static typing as a problem. In general, new type systems should start with a good problem definition: e.g. what of errors would you like to prevent, and do those problems really occur? Then design a type system, and see if its costs (there is no free lunch) justify the gains. I think the big successes of dynamically typed languages such as Python point out a problem with the C/Java/C++ type systems: they fail to answer especially the latter question. Finally, why a new language?! Build it on top of the type annotations in Python 3: http://www.python.org/dev/peps/pep-3107/ http://www.python.org/dev/peps/pep-3107/ BTW I'm all for statically typed languages, if well done, and am a huge fan of Haskell
- seunosewa 16y agoThe problem with python is the lack of speed.
- silentbicycle 16y agoAlso: No tail-call optimization, lack of a separate compile-time phase / static metaprogramming, strictly class-based / single-dispatch OO, etc.
- Chris_Newton 16y ago> At this point in computing history, your language needs a stronger raison d'être than "Python isn't statically typed, and C++ has awkward syntax!" True, but for all the rapid development in programming languages at the moment, we still don't actually have (AFAIK) a general purpose programming language that has simple, clean syntax à la Python, a static type system that covers all the basics but doesn't get too clever/complicated for everyday use, and good performance. This always seems strange to me, given that all the necessary ingredients are widely available in other languages and I see no inherent difficulty in combining them. I suppose industrial forces already have "good enough" languages and academic forces are more interested in pushing the frontiers in languages like Haskell. That probably doesn't leave a lot of people with the required skills, time and inclination to work on a solid, practical, boring tool that just gets the job done a bit better than anything we have today but without trying to somehow reshape the entire programming industry and become the Next Big Thing.
- chipsy 16y agohaXe seems to come within inches of your idea: Inferred static compilation for multiple VM/source targets with a "trapdoor" into the target's dynamic typesystem. JS-like syntax. Macro system(still in development but usable). Compiles to reasonably performant C++, although matching hand-written C++ performance is not a goal. I have been using it for several years now with the Flash/JS targets.
- anon_d 16y agoSML/Ocaml: - Rapid development - Clean syntax - Static type system - Good performance - Practical, not about pushing boundaries SML especially, is a very stable, simple, and well thought out language.
- mahmud 16y agoAliceML adds distributed programming, constraint programming, lazy evaluation, plus more. http://www.ps.uni-saarland.de/alice/ http://www.ps.uni-saarland.de/alice/