16 ms·
I know this sounds a little coarse, but I really don't care about yet another new programming language. There are too many already with so many distinct use ca
by pointyhat 15y ago
I know this sounds a little coarse, but I really don't care about yet another new programming language. There are too many already with so many distinct use cases and niches.
I think a simple, general purpose programming language is good enough(1) for the web and I'd rather have one tool for all jobs versus another edge case language. In fact I'd rather have someone concentrate on one good "multi-tool" than provide me with a hundreds of cheap short-lived screwdrivers with different shaped heads.
Innovation should be about making the status-quo better, not introducing a new status-quo every 5 minutes with new promises.
(1) - "Good enough" is an under-used term these days.
- dantheman 15y agoI have to completely disagree, there isn't enough innovation in the programming language space. The more people we have writing languages and the more people using them, the more quickly we'll discover new patterns and improved ways of doing things. Improved programming languages with better abstractions, better guarantees can allow whole new classes of programs to be written. Of course, they could be written using traditional techniques but the complexity and difficulty involved can make them almost impossible.
- pointyhat 15y agoI completely disagree with your disagreement. There is plenty of innovation in the programming language space. There is too much. We're too busy working out how to talk to the machines versus how to get problems solved. We're here to solve problems, not serve the machines. In fact, the shortage is in computer-science research. There has been NOTHING as fundamentaly important as Knuth's work in the last couple of decades. It's an innovation standstill. Nothing fundamentally better than the UNIX and LISP paradigms is out there for example. Until something fundamental changes, most of what we have will do the job fine.
- llimllib 15y ago> There has been NOTHING as fundamentaly important as Knuth's work in the last couple of decades. What work of Knuth's? TOACP? TeX? I'm a huge Knuth fan, but I don't see his work as fundamental to computer science, rather mostly as an amazing gatherer and editor of such work.
- pointyhat 15y agoHe formalised it which is the one thing everyone else had failed before. Plus don't forget things like KMP algo, METAFONT, TeX, literate programming etc.
- pnathan 15y agoIf I recall correctly, he invented rigorous algorithm analysis in the process of writing TAOCP.
- wazoox 15y agoRead this and learn what Knuth did as his summer job in 1960 (he was 21 or 22): http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html#7 http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html#7 here is the conclusion of the chapter: "In 1961, the National ACM meeting was held in Los Angeles. The keynote speaker was Tom Watson, the Chairman of the Board Of IBM. Bob Barton was the second or third speaker after Watson. don and Lloyd and I were in the audience of approximately 1200 people. [...] "There are only three people in this room that really know how to write a compiler and I would like for them to stand up now. They are don knuth, Lloyd Turner and Richard Waychoff."
- xyzzyz 15y agoYou might be interested in his resume: http://www-cs-faculty.stanford.edu/~uno/vita.pdf http://www-cs-faculty.stanford.edu/~uno/vita.pdf
- psykotic 15y ago> I'm a huge Knuth fan, but I don't see his work as fundamental to computer science You're talking about the guy who invented LR parsing.
- Rusky 15y agoLanguage innovation is tightly tied into computer science innovation. There are plenty of paradigms that are fundamentally different and quite potentially better than UNIX and LISP out there- you just need to get out of that rut. Mozilla's language [Rust](https://www.github.com/graydon/rust/wiki https://www.github.com/graydon/rust/wiki) is working on static verification (using typestate) and concurrency in a C/C++ level language. The Haskell community has several people ([Conal Elliot](http://conal.net http://conal.net), [Luke Palmer](http://lukepalmer.wordpress.com) http://lukepalmer.wordpress.com)) who are working on new models of functional I/O such as functional reactive programming. There is a lot of programming language innovation in parallel/concurrent programming that's just hitting mainstream- actor model, asynchronous programming, CUDA/OpenCL, etc. The way you talk to the machine is an extremely important part of "how to get problems solved." If you can't express something without absurd amounts of overhead, you're not going to solve the problem that way.
- pointyhat 15y agoLook at the fragmentation in your comment above. It should start with math and formal verification (top down) rather than with the language (bottom up). Start here: http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
- yxhuvud 15y agoThe reason there is a lot of fragmentation is that there is a lot of different problems out there to solve. There are no pana cea that solves every problem at once. It should start with a problem and then formulating abstractions to make the problem easier to solve. Or in other words with defining a language and then see what properties it has. Starting with the verifications gives you very well defined properties, but it doesn't solve your problems because you will then optimize your language for the wrong thing.
- Rusky 15y agoI'm not sure what you're saying. Do you honestly expect every PL researcher to all work on the same magical super-language? No- they're going to work on the problem in their area of expertise and create/modify a language to show off their ideas. Then a language like Scala or Haskell or Clojure can come along and improve on them or combine them. Every field works this way. That's why there is more than one particle collider, more than one drug for each problem, more than one theory of particle physics, more than one programming language. Your link talks about radical change over gradual change in computer science. It seems to support the idea of creating new and dramatically programming languages. The idea that "small" changes have large effects discourages the gradual modification of existing paradigms and languages.
- pnathan 15y agoAgreed. Right now the only significant research breakthrough I've seen is the work on formal analysis of programs. I have read hundreds of computer science papers from the 60s, 70s and 80s as part of my academic work, and frankly, everything I'm seeing today was conceptualized and/or invented then. It's staggeringly obvious if you read the sweep of history as written by journal article titles in, say, Software Practice & Experience, between 1970 and 2010. Somewhere in the late 80s things just peter out. I strongly suspect a few things have come into play here. * Disdain for formal mathematics by software writers. Mathematics is so absolutely key to heavy-duty breakthroughs in computer science. * Increasing percentages of academics who never worked in the real world (and consequently knew how to get stuff done or what really matters). * Lack of the academic industrial research labs such (Hi MS Labs! You are awesome! Keep it up please!). Also, lack of massive DARPA/DoD/DoE & NASA funding. * The general decline of academic research quality, sacrificed on the altar of metrics (e.g., papers per year) & budget cuts. * Friction caused by standards and legacy data & code. It's easy to innovate in a greenfield world. When you have to support five gazillion things & have 'batteries included', barriers to adoption are a lot higher. I suspect major seminal work in the next decade will come from the Haskell crowd, since they are the most mathematics-heavy writers, and it is gaining traction in Microsoft and Google, which have the budget to support offbeat research.
- deleted 15y ago[deleted]
- pointyhat 15y agoThank you - this is my entire line of thought.
- beambot 15y agoSo... you're given a blank check, either as a industrial research lab manager or DARPA program manager. What "revolutionary" research in CS would you champion? It's easy to be critical from the sidelines. There are very smart people still working in this space, including Knuth himself.
- pnathan 15y ago
- kunley 15y agoI disagree with your disagreement of the original disagreement. Plenty of languages does not mean plenty of innovation; in the web programming there's certainly too less of it. Every new or currently fashioned language evolves to a point where community implements its own Rails in it. I hope you don't call this trend innovation because it's not. There were some promising trends in web programming like use of delimited continuations, but they didn't make a breakthrough. Today's web dev still is a hack around stateless http protocol, requires you to know at least 3 languages and there are no composable components you could easily reuse. World definitely needs innovation in this area.
- Rusky 15y agoDefinitely agree. Mainstream language design seems to be stuck on endless variations of Ruby, JavaScript, and Java. I would love to see as many new languages as we have now, but focused on more significant changes than "Lisp without macros and a slightly tweaked generics system."
- hbbio 15y agoYou should really check Opa, which has been discussed several times here. The syntax does not please everyone (and can evolve) but at least it is built on original concepts. See http://opalang.org http://opalang.org. An alternative is Ur/Web if you're that curious.
- wnight 15y agoLike AI, if you define innovation as something large enough then we'll never get there. I think there's a lot in the small steps. It's only by implementing a framework ten times that it'll be done really well. In one language you'd never get traction for the later frameworks. If each community does one with knowledge of the ones before them eventually a great implementation will be created.
- 0x12 15y ago> In fact, the shortage is in computer-science research. and > There is plenty of innovation in the programming language space. Are at odds with each other. All of the programming languages that we use today can trace their roots back to computer-science research, either in the dark ages or in the immediate past. Things like software transactional memory and other goodies are the pay-offs from that research and those things are only now making their way into programming languages. You can't have the one without the other. And that goes both ways, computer-science research needs to have people that try the concepts it comes up with in the marketplace to see what survives in an adversarial context, so that it will be able to make the next step based on what survived and what didn't. So that's two birds with one stone, it's a proving ground and the foundation for the next generation of concepts.
- pointyhat 15y agoComputer science != programming language. Computer science is at a far lower level of abstraction than meta-languages and compilers.
- scott_s 15y agoMost people I know consider programming languages and compilers a part of computer science. This set of people is mostly computer science researchers, some of whom (including myself) who do work in the area.
- pointyhat 15y agoThat's at a very high level. It's part of, but it's not the driving force behind what is possible. That is the constraints of the universe and consequentially mathematics, on which there is little focus these days. Programming languages and compilers are the easy part of the problem. Translation is almost completely solved. However, the abstractions over the top at both the conceptual and structural level (logic->machine) are definitely not solved.
- scott_s 15y ago
- zobzu 15y agoplan9 singularity both, similar in some concepts, just kills UNIX on the design stand point. None of them are really used. Sad :( Eventually we will merge toward them tho, they're the future somehow. Not because they're "new" (compared to UNIX) but because they solve resource and security issues we have today. Also solves a lot of the complexity.
- MatthewPhillips 15y agoUnix survives because it's good enough. A successor doesn't have to beat it; it has to blow it away. [1] http://www.faqs.org/docs/artu/plan9.html http://www.faqs.org/docs/artu/plan9.html
- naasking 15y agoCompletely disagreed. There is a lot of language creation, but little language innovation. Ruby, Python, Perl, Lua, JavaScript are essentially all the same language. Java and C# are the same, and very similar to the scripting languages just adding static typing. C++ is similar to the previous 2, just removing memory safety. What was so innovative about any of these languages? They are the same old imperative OO paradigm that first appeared in Simula and Ada back in the 80s. Examples of languages that are innovative are Mozart/Oz, Haskell, Alice ML, Coq, Agda and Mercury. These completely redefine what it means to program, and all of them were created in the last 15-20 years. And if you think there haven't been great strides in each of these domains, then you're simply not familiar with them.
- apotheon 15y ago> There is plenty of innovation in the programming language space. There is too much. No such thing. Innovation is a good thing, period. Perhaps what you find objectionable is the proliferation of stuff that people call "innovation", but really isn't very innovative.
- vladd 15y agoImagine Microsoft announcing a browser different than IE... That's what Google is doing: a company famous for closing fast projects that don't get immediate traction launches a new programming language when they have Go out there already... Programming languages are like platform APIs: they effectively lock-in you into their environment. If you're in academia or doing research, you're free to throw out there whatever you want, but I'm not switching my development into this, at this stage there's too much risk and no proven benefits.
- Rusky 15y agoSo don't switch your development to it. It's an experiment- academia, hobbyists, and other people who don't care about getting locked in will try it out and learn from it. Then either the language will succeed and you can switch if it turned out well, or it will fail and the programming community will learn from it. Just because Google is doing it doesn't mean it can't be an academic experiment. Experimentation with new programming languages is very much more useful than with new browsers, because you can't easily slap on new features to a programming language whereas you can on browsers.
- buff-a 15y agoOr it will succeed, you'll start using it, and then they'll pull the plug on it, or find some way to charge an outrageous amount of money for it.
- InclinedPlane 15y agoParadox: how can a language become successful if it is only ever used in academia and hobbies? Look at perl, javascript, php, coffeescript, scala, etc. These languages became successful precisely because people started using them for production projects more or less on day 1.
- Rusky 15y agoExample: some hobbyist will write an amazing web app with it and then some small studio will pick it up and it can grow from there. A lot of hobbyists are also professionals.
- rabc 15y agoThere is a lot of innovation in the programming language space, see what node.js is doing with javascript (I still remember the days when everyone let all the JS code to juniors programmers because no one liked JS). Google should focus on fixing what's already done, not re-inventing the wheel again.
- munificent 15y ago> what node.js is doing with javascript How is node.js innovating in the language space?
- rabc 15y agoGiving a new way to work with it, making you rethink your async patterns. node.js created a new world to work with JS, making it more powerful.
- jerf 15y agoIt created a new world to work with in JS... by copying the async frameworks that already existed in numerous other languages. Innovative within Javascript, sure. Innovative, without further qualifications? Decades too late for that.
- munificent 15y ago> making you rethink your async patterns. Call me crazy, but I don't consider forcing users to manually transform their code into hard-to-read continuation passing form much of a language innovation. > node.js created a new world to work with JS, making it more powerful. Sure, it gave it a new environment to run in, but it didn't make the language any more powerful than applets made Java the language more innovative.
- dasil003 15y agoNode's primary innovation is in terms of A) unifying JS on a single high-performance platform and B) creating an ecosystem from the ground up where thread-safety is required at all times. These innovations are significant, especially at the boots-on-the-ground level. That said, when people speak about lack of innovation in programming languages I think they are looking for more fundamentally new ideas. I don't want to be a cynic—all ideas are derivative after all—but I don't think Node qualifies.
- timdorr 15y agoWhat's worse is this is fragmentation of the programming economy. I've found awesome bits of code written in Python that I can't use in PHP/Ruby/C++/etc, and various other combinations. There are great programmers working on great projects, but if they're not using the language of choice for my particular project, they are essentially useless to me. It also makes it difficult to find new talent because there is less of a chance they'll be able to work in the language we've chosen. And yes, a good programmer should be a polyglot, but it's an attraction issue. If I'm advertising a Ruby job and looking for skills with Ruby-specific tools, there may be a great Python programmer that could switch over but who doesn't apply because they don't want to deal with switching gears to another language. Let's keep it to 3 or 4 major languages. I think that's all I can take right now...
- viscanti 15y agoLibrary support is a big deal, and obviously a new programming language won't have a whole lot of that. That issue gets a lot smaller, if the language allows an easy way to abstract away a lot of those issues, making it quick and easy to deal with whatever you'd look for a library for. If your main goal is to find lots of library support, this new language won't appeal to you. I'm reserving judgement until I actually see it. Maybe it's a great, fun to use language that gives significant performance advantages over other high level languages. If I need half the servers, that could be a big win. If threading and concurrency are abstracted away in a way that's performant and I don't have to worry about it, that's a big win. I don't know what it will be, but if it's useful it's useful. Seems a bit silly to judge it before it's out, especially criticizing it simply for being a "new" language.
- zcam 15y agoObvioulsy not, there are a few good good solutions to that, like running on the JVM or some other similar platform. It is not all about performance, languages can introduce new abstractions that can make a lot of difference.
- randomdata 15y agowho doesn't apply because they don't want to deal with switching gears to another language. In my experience, a good developer doesn't care about the language, and, in fact, would be excited to learn a new one. However, our industry has the mantra of "find someone with perfect proficiency or hire nobody," leaving those good developers afraid to apply unless their skill-sets match exactly.
- mkramlich 15y ago> In fact I'd rather have someone concentrate on one good "multi-tool" than provide me with a hundreds of cheap short-lived screwdrivers with different shaped heads. "Here try these tools." hands you a python hands you a linux
- pointyhat 15y agoWithout revealing too much, you hit the nail on the head.
- mtkd 15y agoI suspect this just as much driven by Google building tools it can't be sued for later
- MartinCron 15y agoThey can be sued on (largely bogus) patent claims regardless of language/toolset. Even if they completely wrote their own language and implemented every feature from scratch, that doesn't give them any meaningful patent protection.
- perfunctory 15y agoLet me ask you, what's your favourite programming language at the moment?
- pointyhat 15y agoPython. And if it's not fast enough, C.
- rbanffy 15y agoAnd, when C isn't fast enough, VHDL ;-) No. Not really. I keep promising myself I'll learn it, but, so far, the goodness of the excuse to learn it does not outweight the lack of time.
- pointyhat 15y agoI studied VHDL extensively at university as well as semiconductor physics (I did microelectronics). I'd like to go back to that level - it's great fun but too many problems are utterly abstract now for anyone to care about it any more. However, always make time for stuff that's interesting :)
- Jach 15y agoActually you can jump back up the ladder a bit by using MyHDL, a Python module which compiles your Python down to either Verilog or VHDL. http://www.myhdl.org/doku.php http://www.myhdl.org/doku.php
- Tichy 15y agoPersonally I don't think Python is good enough. It is OK, but better things can be imagined. For example I don't like the crippled lambda.
- pointyhat 15y agolambda is quite crippled I agree, but if you have to port your code to C for performance reasons, it's good not to have to port them as well :)
- trocker 15y agoI will not 'agree' or 'disagree'. But I have the same opinion as yours, no more programming languages please! Help making the present language better, if you really want to!
- wisty 15y agoThe only real server-side web language is PHP (and Microsoft's ASP). Sure, you can do a decent job with Python or Ruby, plus some wacky hack of a templating language (there's a wide range, but they have never gotten the care and affection that a fully blow language would get), but PHP is really king of the hill for web work. I think that PHP could be replaced by something just as specific, and without the warts. You could also look into typing and compilation (optional static typing, with implicit declarations where possible?). Now, I don't use PHP, but you have to admit it's useful and productive for a lot of people. If Google can improve it, and I think it can, it would be a boon. That said, every time I try to guess what the implications of Google's next big thing is, I'm completely off track. I think a PHP replacement would be the most useful thing they can do in this space, but they will no doubt have a different plan.
- revorad 15y agoThat's very cynical reasoning. You can extend that and say everything is good enough. Why bother programming at all? And since when did innovation become about preserving the status-quo? It's exactly the opposite of it.