New Programming Languages Come From Designers
eldavojohn writes "A very lengthy and somewhat meandering essay from Crista Videira Lopes has sparked off some discussion of where new programming languages come from. She's writing from the viewpoint of academia, under the premise that new languages don't come from academia. And they've been steadily progressing outside of large companies (with the exception of Java and .NET) into the bedrooms and hobbies of people she identifies as 'designers' or 'lone programmers' instead of groups of 'researchers.' Examples include PHP by Rasmus Lerdorf, JavaScript by Brenden Eich, Python by Guido van Rossum and — of course — Ruby by Yukihiro Matsumoto. The author notes that, as we escape our computational and memory bounds that once plagued programming languages in the past and marred them with ultra efficient syntax in the name of hardware, our new languages are coming from designers with seemingly little worry about the budget CPU being able to handle a large project in the new language. The piece is littered with interesting assertions like 'one striking commonality in all modern programming languages, especially the popular ones, is how little innovation there is in them!' and 'We require scientific evidence for the claimed value of experimental drugs. Should we require scientific evidence for the value of experimental software?' Is she right? Is the answer to studying modern programming languages to quantify their design as she attempts in this post? Given the response of Slashdot to Google's Dart it would appear that something is indeed missing in coercing developers that a modern language has valid offerings worthy of their time."
All you need to create a good programming language is a beard. The more epic the beard, the better your language will be
I love lolcode
Aren't the basic programming concepts understood and defined now? All a new language can really bring to the table is a different syntax.
The successful new 'languages' these days are those that include a big set of libraries, eg. Java and C#. People use them for the libraries more than the language. Without the libraries Java and C# are nothing more than reinventions of the UCSD p-system.
No sig today...
Well there is always been two sides of the medal balancing each other - convenience and performance, and i doubt it will ever change. And i think Ruby is really stands apart from other mentioned languages, a lot more sophisticated and carefully designed.
Yes, new languages come from "lone programmers". Academic people basically suck at making languages popular, which is why languages like PHP are incredibly popular depite offering litte more than "being good enough" (what a feature...) and repeating mistakes from the past.
was just what was missing! now that we have almost everything done by people who knows shit about that domain (ie: music), we'll have computer languages designed by people who understand shit about programming logic. COOL!
Ruby and python are really just variants of Object BASIC yes they have their unique syntax sugar and slight twists like Ruby where everything is a object even things like literal ints. None of that much matters having an itor on something like 5 does not really alter the design of my program it's just little shorter to type than for I=0 to 5; dosomething(I); endfor.
None of this bad as developer I rather like it, but I agree with the author it's not really innovative
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
> 'one striking commonality in all modern programming languages, especially the popular ones, is how little innovation there is in them!'
http://c2.com/cgi/wiki?GreenspunsTenthRuleOfProgramming
"Every sufficiently complex application/language/tool will either have to use Lisp or reinvent it the hard way."
So why do people (hotshots) keep reinventing the wheel, instead of contributing to libraries for LISP and/or Scheme?
For non-hotshots, get back to rowing at bottom of the ship with PHP and Java business-logic oars!
I'm not a lawyer, but I play one on the Internet. Blog
>under the premise that new languages don't come from academia
http://en.wikipedia.org/wiki/Guido_van_Rossum :
>Van Rossum was born and grew up in the Netherlands, where he received a masters degree in mathematics and computer science from the University of Amsterdam in 1982. He later worked for various research institutes, including the Dutch Centrum Wiskunde & Informatica (CWI), Amsterdam, the United States National Institute of Standards and Technology (NIST), Gaithersburg, Maryland, and the Corporation for National Research Initiatives (CNRI), Reston, Virginia.
Wrong premise.
http://en.wikipedia.org/wiki/Yukihiro_Matsumoto
>He graduated with an information science degree from University of Tsukuba, where he was a member of Ikuo Nakata's research lab on programming languages and compilers.
Again wrong premise.
How many more 'new' languages do we have to wade through until we fintd one with something significantly more interesting than already found in Lisp?
So we have to forever endure individual designers who never heard of http://en.wikipedia.org/wiki/Greenspun's_tenth_rule ?
When someone designs a programming language to solve a problem that they have, they are designing a programming language that will likely solve the problems of a lot of other people (unless you have particularly esoteric problems).
Matz has said that he built Ruby because he wanted a scripting language more powerful than Perl but more object oriented than Python. He solved his own need and that coincided with the needs of other people, making it a popular language.
Design-by-committee languages tend to feel like they've taken a blind guess at what problems need to be solved without consulting the people experiencing those problems.
"Languages designed by academics like FOTRTAN, COBOL, C"
Were apparently desighned by academics obsessed with internal consistency and are now mostly deat tounges.
These are contrasted with languages hacked up by people to get stuff done.
WTF?
FORTRAN was the first ever language and was hacked up by someone who wanted to get stuff done because ASM was too much of a pain in the neck. It was unlike the author's bizzare assertion the easiest to use language at the time of being written. That was the entire point! While its use may be on the decline, it has been in use for 55 years! And major important packages are still written in FORTRAN.
And C? Seriously? Yet another language which was hacked up by a bunch of hackers to get stuff done. Apparently it's mostly dead. Even though it is the main implementation of 3 of the "less academic" languages listed.
I'm surprised there isn't a "c++ is dieing haha lol!1!111" in there too. I'm glad the author never tried to argue that C++ has internal consistency (I do love C++, but...).
And COBOL being an academic language? Oh dear.
Conclusion: article is crap.
SJW n. One who posts facts.
A programming language that doesn't have any irritating flaws or omissions, that's all I want. Am I asking too much?
Okay, maybe two. One optimised for system programming to replace C, and another, higher level, for applications. Give them both very similar syntax and semantics, except where differences are called for by their different purposes.
Instead, we get dozens upon dozens of languages that are distinguished only by their various flaws, limitations and arbitrary differences in syntax and semantics. Why? Is no one even TRYING to get it right?
We don't need yet another new programming language. Let's just pick an existing language and fix its flaws.
You should at least provide some arguments as to "why" you think those are bad examples. Otherwise do not be surprised to be modded flamebait.
We don't really need any new languages. We need libraries and frameworks that are simple, flexible, minimalistic and don't force you into their own unintuitive way of doing things just so they can claim to have cobbled together 300 design patterns into a buzzword compliant mess. All the libraries and frameworks are complete ass. Java and .NET, C and C Sharp. All crap. We've actually gone backwards in the last 15 years. It use to be relatively easy to put together a program that did simple IO and database work. Now you have to create mappings and configuration that makes things slow and cumbersome. The solution when you get bogged down? Lightweight cobbled together languages that can't scale for shit. When I was programming int he mid 90s it use to take 2 hours to prototype a screen to show a customer. Now you're lucky if it takes a week, and you spend another week on test cases that have less to do with actually being useful than meeting some damn coverage quota. Programming, like most things has regressed in the last decade and a half.
How many more 'new' languages do we have to wade through until we fintd one with something significantly more interesting than already found in Lisp?
Sooner or later, everyone will realise LISP is the best language (Since 1985 (tm)).
Lisp is wonderfully flexible, but the trouble is it has not syntax and you basically write your program as an AST (there's a reason for the A in AST in most languages).
There's no parser for nice syntax, so you basically have to do undo the process of writing it in AST notation in your head to understand semantically what's going on.
To me and many other people this makes it really a pain in the neck to read and therefore hard to use. It puts too much of a load on the programmer.
The concrete syntax of other languages makes them much easier to read (and therefore write/debug). Sometimes, the benefits of being able to happly mess with the tree before running the program outweighs the benefits of being LISP. As other languages get better and more expressive, the times when the flexibility of LISP is a benefit get fewer and fewer.
SJW n. One who posts facts.
I am still wondering why there are such huge differences in performance between the languages. We should have gotten to a point now where it doesn't matter what language/design pattern/paradigm you employ to solve your particular problem, therefore the language of choice would be the most legible/reusable etc. The ideal should be not to worry about the how and focus on the what; an application developer should focus on his application's functionality. Any specific optimization for whatever platform should be done by the respective compiler, i.e. should be only the concern of the programmers that write the compiler. There is no real reason why something written in Python or Ruby couldn't be compiled to a binary with the same performance as something written in C/C++.
The article seems to ignore modern compiled (and carefully crafted) languages like Scala, Limbo, Go and tries to criticize the wide adoption of scripting languages among people who aren't really pure developers (as if they mattered!) and those developers who value development speed over quality, maintainability and performance or in places where network and/or human input latency abolish any other performance concern.
I would worry if important projects with large budgets and generous timeframes switched from Java to e.g. Ruby, but this won't happen. The existing compiled languages for such purposes are obviously very good already, so why should it matter that a new compiled-to-JS-language pops up every day?
"I love my job, but I hate talking to people like you" (Freddie Mercury)
So is that where someone puts a gun to your head and says "develop in my new language or else," or where you sit down to try out a new language only to discover that it's changed you into a completely different type of developer?
The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
I have programmed professionally in more than 30 languages including machine codes, assemblers, FORTRAN, COBOL, Algol, C,C++, lisp, Prolog, and a variety of "4GL"s. I have used Java and Python since retirement and I can say one thing for sure about them all. Choose the right one for the job and you're half way done, choose (or be forced into) the wrong one and you you are going to pay for it in blood, sweat and eventually tears. On at least two projects (each being more than 50 man years of design and coding effort) it was worth devising a new language with a syntax suited to the problem and writing the compiler. For some jobs, readability of the code by non IT staff can give a huge payoff, for others raw performance is the only criteria. Real time interaction with physical systems usually needs a "lower" level, C or even assembler, Complex data requires object orientated structures and for once off "need it today" jobs, Java might be the answer. Maintainability brings another load of constraints, as does the intended "longevity" of the project, and don't get me started on the whole domain of "proof of correctness".
It is very easy to forget that a language is just a tool. If you only have a hammer you will find screwing a problem, but then you are reading this on slashdot.
nec sorte nec fato
Register globals has been off by default for I don't know how many years.
Magic quotes is officially deprecated.
What serious developer doesn't use PDO/mysqli and prepared statements?
Greylisting is to SMTP as NAT is to IPv4
I had to create a few simple languages during my developer years. I see the creation of a language like the writing of a novel. There is a direction, a style, a set of consistent syntax and rules. C, C++ or Java are for me good examples of consistent languages, lisp and Perl also.
And unlike the examples given in TFA, I don't think PHP represents a language created by a unique person - being too inconsistent on many respects.
Slashdot, fix the reply notifications... You won't get away with it...
You have to keep an open mind about things like this. I can see where the person comes from... PHP is always getting ragged on by the more seasoned programmers who can't get over themselves, but lo and behold, it's used in practically every damn website on the internet and then-some. So it's apparently doing something right--and PHP is still pretty young.
It's great to be an old fart with skill and experience. It's great to be young and full of ambition... But both fail every time when they close their minds off to new concepts and ideas. You may think that one programming language is the same as the other 3 or 4 you've recently learned through the past however many years, but chances are you're not paying attention enough to see something that would otherwise make you think differently.
(But I'm not sure if these languages come from designers... I'm sure some designers might've had their hand in them, but chances are most if not all had at least SOME programming experience. I mean, c'mon, you don't create languages without having that kind of experience.)
The problem isn't "serious developers", it's those that aren't taking it seriously.
You can take all the precautions you like, but short of getting your own dedicated server and running nothing but your own code (or code you have audited), you are always at risk of the issues introduced by someone else. On a shared host, an exploit in someone elses code is only one local exploit away from your data...
For all of you that don't want to spend a minute reading this shit:
"Computer Science is boooooring! Look at me! I'm a designer!!! I'm cool!"
Any Turing complete language provides an infinite number of ways of solving any given problem. The difference between a good language and a bad one is whether the easiest and most obvious way of doing something is the correct way. The existence of things like register globals and magic quotes that can only be used incorrectly is a good sign of poor design.
I am TheRaven on Soylent News
"o no, programming is not a playground, it's a serious matter. And as far as you don't understand what a buffer overflow is (and a load of other things), your employer shouldn't allow you to code."
Amen to that. If only more people had the same views. Code is what keeps modern society running and the last thing thats needed is amateur hour when writing in critical systems. Just because any idiot can write simple code with a bit of training doesn't mean any idiot SHOULD be writing code. Any idiot could probably learn to fly a plane but I wouldn't want them at the controls of a 747 I'm in.
>New Programming Languages Come From Designers
What does not nowadays?
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
The summary lists several popular languages as examples. Do her results hold if you include less popular, exotic, and experimental languages?
Sheesh, evil *and* a jerk. -- Jade
there's no way "the best tool for the job" can justify any of:
Java's badly designed core class library, with its lack of logical consistency and its abuse of structured exceptions.
C's preprocessor. There are better ways to implement constants and macros.
Multiple inheritance and operator overloading in C++. *
PHP semantics changing with each configuration.
Perl's horrible syntax. *
SQL's numerous security vulnerabilities.
LISP's non-procedural pretensions, and the contortions that result.
Nearly every language's dependence on its own class libraries, because interoperability is unthinkable. What's the point of living if you can't reinvent the wheel?
* "Well, just don't use those features!" Go tell that to the guys who wrote the code I'm expected to debug. If you can manage to track them down somehow. They're long gone.
We don't need yet another new programming language. Let's just pick an existing language and fix its flaws.
'one striking commonality in all modern programming languages, especially the popular ones, is how little innovation there is in them!' and 'We require scientific evidence for the claimed value of experimental drugs. Should we require scientific evidence for the value of experimental software?' Is she right?
Absolutely on point #1 - what dope smoking communist closet did she just stagger out of to come up with point #2? If it works and you like it, use it.
Of course, of the languages listed (PHP, JavaScript, Python, Ruby), I've never done anything "real" in any of them (meaning, sustained development & support > 6 man months) though JavaScript is trying to weasel its way into my Qt world via Quick....
10 PRINT "Hello, world!"
20 GOTO 10
I'm still waiting for this to finish running so I can move on to lesson 2.
"You code in the language we tell you to, or you're fired."
Screw this, I'm gonna go look for another job.
So you go on dice.com...
"You code in the language we tell you to, or you don't get hired."
We don't need yet another new programming language. Let's just pick an existing language and fix its flaws.
...marred them with ultra efficient syntax in the name of hardware...
I stopped reading right there.
indeed, good thing they are removed then isn't it
I'm god, but it's a bit of a drag really...
"....something is indeed missing in coercing developers that a modern language has valid offerings worthy of their time."
What's missing is putting a gun to their heads.
"Coercing" means forcing. Surely the article description meant "convincing."
Register_globals was completely removed in the latest PHP version out in the world a couple of days ago
I'm positive, don't belive me look at my karma
Right, I completely forgot they released 5.4.0 last week.
Yeah, I think they nuked magic quotes with 5.4.0 as well.
Greylisting is to SMTP as NAT is to IPv4
You can write incredibly performant code that is easy to reason about in Common Lisp or Clojure. We don't have to choose between performance and usability.
Which is something that affects every single computation ever done, from meta programming to processor microcode to pen and paper multiplication.
So, yes it is true but also irrelevant.
As is the question of the AC that spawned this debate.
As is the story really (in my very honest opinion). I don't care where the language I program comes from as long as it behaves as I want it to. today languages are designed instead of being engineered. Ok, I'm pretty sure that when some mega corp or institute finds itself in dire need of creating a language, to solve all their computational problems, they will engineer one or design one depending on their needs. Compiler creation guidelines flow freely on the net and are available in books as well, Why wouldn't someone create a new language if he felt like it? And why wouldn't other people adopt it if they felt like it.
Whoever thinks that all technological progress should come out of universities is fooling himself, nothing bad is happening here.
-- no sig today
The difference between a good language and a bad one is whether the easiest and most obvious way of doing something is a correct way.
What serious developer doesn't use PDO/mysqli and prepared statements?
I've been programming for 30 years, 20 for pay, 15 in some management capacity (always with at least 50% hands on coding time), and I don't know what the hell you're talking about, I suppose I could Google it, but why?
Come on Raven, this isn't even an argument. The two settings you talk about had a reason to be there, they provided functionality. Sure it is common sense now that this type of functionality has way too many drawbacks and this is why it is being iterated out of the language. All I see being talked about in this whole thread is features of languages that when used by some half informed programmer can have a bad effect.
Dear everybody: Please, get over it. Every language will bite you in the ass if you are going to create a big enough program in it. Every C writer in history has at some point written a buffer overflow, every code monkey an SQL injection, every rails genius a mass assignment vulnerability and don't even get me started on MicrosoftLand...
The fact of the matter is this: "It's not the language it is the DEADBEEF in front of the keyboard."
-- no sig today
It does not matter where computer languages came from, because ...
They all will either fail or end up being Common Lisp.
so, whatever your roots are, you will either fail or end up rediscovering academia.
Kinda makes sense to me.
I think I still have my manual for SNOBOL somewhere. I doubt I would have gotten rid of it. Anyways I remember it fondly as well, although I didn't end up using it a lot.
"The first time I got drunk, I got married. The second time I bought a chimpanzee, after that I stayed sober" Arian Seid
Serious developers need to code so their code either refuse to run or run correctly under any version of PHP: the code may be reused by others or moved to a different server with an older PHP. Therefore, the code must still contain all these hacks to deal with these braindead features.
Hey! You plagiarized MY first program!
No, it's not irrelevant, infact it's as far from irrelevant as it's possible to be.
You can use all the correct methodologies you want, but if you haven't secured the environment then you are trusting everything else to be correctly coded.
Now, with OSes etc that's always going to be a factor to a degree, but the situation here is when you are trusting every other developer hosting their code in a shared platform - in that case you can do everything correctly, you can use PDO, you can turn off Globals, but you can't trust someone else to have done the same.
So its utterly relevant that the issue is not just applicable to "serious developers", it's the 14 year old who has banged something out before bedtime and uploaded it to their host - a compromised account is still a compromised account, whether it's a "serious developers" account or not, and their compromised account can expose your data without you ever doing anything wrong (other than picking a bad shared host).
The problem isn't people creating new languages, its people creating new languages with gaping holes to start off with - register Globals should have been rejected from the outset, instead it became ingrained into the language to the point where it's taken a decade to get rid of it in the latest versions.
So, that is why PHP and JavaScript are so damned basterdized. If these languages were strongly typed, I'd be much happier.
Tell you what, come up with a new language to unify databases and HTML 5 such that it is secure and provides alot of compile time errors. Then I will be hapyy. I am few up with finding bugs only after uploading my PHP files to a server.
....abstraction. Better yet what they are made of ... http://abstractionphysics.net/pmwiki/index.php
What serious developer doesn't use PDO/mysqli and prepared statements?
What serious developer uses mysqli? (Just kidding of course!)
But really, all of our business data is on SQL Server or DB2/400. And the PDO drivers for either SQL Server or ODBC (DB2) are buggy and incomplete. Hell, the entire PHP implementation of ODBC is buggy, it intentionally trashes all numeric data types and instead treats them as strings.
PHP is my bread and butter, but it's also kind of a ghetto.
I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
Both ZIL and Malaga were designed to solve a particularly difficult case.
You could not have fitted Zork to Commodore 64 with assembler, or you would become insane when trying to spell check Finnish language with Java.
Really? *goes to check the changelogs* And Magic_quotes was removed too! This is excellent news - disabling-by-default and deprecating did little to protect us from almost half the shared-host admins in the world switching those options back on.
Sure, there are tons of new languages springing up every day, each offering (presumably) some advantage in some problem space. The practical matter is, though, that if you're going to do something (e.g. write a program to meet some need) once, using the old inefficient language you know might cost less than the combined cost of learning the new language (and/or suffering through its birth pangs) and the increased efficiency of the new language.
This is especially so when your new thing needs to integrate with a lot of old things. You're writing a new image processing algorithm and can choose any language you like, but it has to integrate into a larger system that is entirely written in FORTRAN. And it has to be maintained by others sometime in the future, so your choosing a new and different language (that perhaps you invented and know really well) imposes a requirement on everybody else downstream to learn that language.
He omitted 'php' from serious php developer. Probably because we'd all have laughed at the notion.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Not every "serious developer" is working on a wordpress/joomla/drupal clone.
There are, and have always been big problems with programming languages ... 1975 the hardware was just too weak
- In the early days, 1960
- Immediately after that the problem of Complexity was not understood, BCPL(Martin Richards) and C (Brian Kerrigan) excepted.
- New Languages Pascal, Modula 1..n were a path to PhD and chair (Niklaus Wirth)
- Good Compilers and Runtimes are very hard, Optimization is harder
- Complexity is the first enemy of correctness (C++, PL/1), obscure syntax does not help (lisp, Python)
- Long windedness and dependance on IDEs produced opaque rubbish (java, Cobol)
Language Standards Committees, with industry packing are 80% of the problem and the reason that most language designs get worse.
It is a real mess and Universities teaching programming religeon, without practical experience, are a big part of the problem.
The compute resources are there to do a decent job, but the dead hand of established technology and debugged compilers (GCC) will make progress
very slow.
MFG, omb
"Should we require scientific evidence for the value of experimental software"
Funny how nobody else has found this as scary as I do. Think about it. Who would be qualified to determine the value of, say, a programming language? Microsoft? Oracle? Novell? SCO? if so, would it surprise us how many languages would be found to be not of value...and how the "valuable" ones just happen to be a Microsoft (for example) staple.
Miss Vidiera, let's not uncork that genie....please?
He's talking about php and database interfaces. If you haven't programmed in php you probably haven't come across it.
Sounds like someone's mad that they spent a lot of time getting a PhD only to find out that a PhD wasn't necessary to be successful in computing.
From TFA: "[T]here appears to be no correlation between the success of a programming language and its emergence in the form of someone’s doctoral or post-doctoral work. This bothers me a lot, as an academic. It appears that deep thoughts, consistency, rigor and all other things we value as scientists aren’t that important for mass adoption of programming languages. "
If someone doesn't come from a scientific background it's simply impossible for them to have deep thoughts and rigor in what they produce? I doubt it. I'm fairly certain that deep thought, consistency, and rigor were put into the programming languages mentioned in the article.
We need less elitism like that shown in this article. I may be jaded by the fact that at my university, our professors were horribly clueless about seemingly every modern computing concept and were still using Pascal to teach programming. When all academia taught was Pascal and even worse languages and old concepts, it's no wonder that people created other languages to get things done.
You're wrong! It's a sign of "no design".
Come on Raven, this isn't even an argument. The two settings you talk about had a reason to be there, they provided functionality. Sure it is common sense now that this type of functionality has way too many drawbacks and this is why it is being iterated out of the language.
But these are the sort of universal errors that computer science has been thumping on about for decades. New languages from within academia are generally rejected because they try to eliminate hacky coding and force good practice from the ground up. Meanwhile languages from outside academia are designed around the coder's own bad habits and reinforce those habits in others.
So what's not an argument? Even if the original designer of PHP wasn't thinking about shared services, the academics were, and people refused to listen to the academics, even going so far as to tell them to enter "the real world".
But sorry, if a job's worth doing, it's worth doing right.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
It doesn't have a data-type-independent exponentiation operator. It's got plus, minus, division, multiplication... but no exponentiation. Sorry, but that omission is just fundamentally retarded.
And I am a big fan of C, incidentally - I prefer it above other languages for its efficiency and near-universal portability. Only perl comes close to being as portable, and perl is a nightmare of overlapping, gibberishy TMTOWTDI syntax.
C's got serious problems. So does perl. Neither one is anything close to perfect, but they are almost certainly the best languages to write in because of their extreme portability. Using C, I can run code written for a PDP-8 on an MVS mainframe, a linux PC, or a DEC Alpha. Using perl, I can run the exact same code on windows and unix. It doesn't make sense for me to throw away that portability unless I am purposely writing a niche solution to compensate for a specific OS's problems.
LISP loses, and will continue to lose until they address the fact that the imperative-c-style is the right choice 90% of the time, and that the core advantages of lisp apply only to the other 10%. Which is why the languages that focus on getting the 90% right, and finding some way to manage the other 10% effectively will forever be leaving LISP in their wake.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Is there a widely used library to simulate Erlang's concurrency model on top of C++, much as Objective-C roughly simulates Smalltalk's object model on top of C?
Someone who can't keep passwords a secret is unlikely to understand what a buffer overflow is
So in a PHP program that connects to a MySQL database or to web services using OAuth and the like, how do you recommend to keep the password accessible to the PHP program yet not accessible to the public?
Wow. This must be the first SlashBookMark.
Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
New languages from within academia are generally rejected because they try to eliminate hacky coding and force good practice from the ground up.
From my own experience, academic languages tend to be rejected because they turn out to be useless beyond creating the type of toy programs that one tends to create in academia. That is, the languages tend to be designed around the academics own myopia and lack of need for mechanisms that don't lend themselves to simple solutions.
Aah, change is good. -- Rafiki
Yeah, but it ain't easy. -- Simba
I have a different view of this. I think the second example is a more useful construct, as it exposes i, as well as list[i]
In Python, you can do that too: for (i, el) in enumerate(list). The function enumerate() wraps anything iterable with an iterator that returns (index, element) tuples.
Better late than never.
We don't need yet another new programming language. Let's just pick an existing language and fix its flaws.
So why do people (hotshots) keep reinventing the wheel, instead of contributing to libraries for LISP and/or Scheme?
Because they are using Lisp, after a fashion. The original plan for Lisp was to have a more traditional syntax called "M-expressions". These have been realized in JavaScript, which combines C-like syntax with the semantics of Scheme and Self.
I have found the most annoying language to program in to be Python. And I couldn't see the point of it. I had to do some debugging because, at my last job, some wise guy thought it would be a good idea to design our own database, and to program the entire thing in Python, then, right before it was finished, he left the company. There was nothing I saw that we couldn't have done in C or Java, the language was almost identical to C and Java, if you updated Python, suddenly your program broke, and as it wasn't a compiled language, the software ran pretty slow. Who the heck came up with that language? And really, what was the point? Sorry, but this experience just gave me an extreamely bad taste in my mouth for Python and these "new" languages
How long until Go Daddy and the other major shared web hosts make available "the latest PHP version out in the world"?
The fact of the matter is that not just programming languages, but entire concepts, frameworks and practices in computer science are completely untested for efficiency, human factors and most importantly, return on investment!
Examples include: ... I like them!"
1) Patterns (Please include a measured, verifiable example of anyone who has saved or made money on this).
2) Agile (See parenthetical above. Extra points on why it's better than just meeting every day and discussing the problems and schedule).
3) The *new* programming language [insert favorite here]!
4) Programming languages with radically different syntax and models. Please don't bother with responses like, "They're *better* because... um....(mutter mumble)
5) Unit testing (Qualifier: It is possible to make this useful, except that most developers don't and don't know how to.)
Please do not read this sig. Thank you.
The fact of the matter is this: "It's not the language it is the DEADBEEF in front of the keyboard."
The fact of the matter is, it is both. Sure, qualification of the programmer is of most importance, but why would a good programmer want to use bad tools? and why would he be as efficient if he were forced to use them?
our new languages are coming from designers with seemingly little worry about the budget CPU being able to handle a large project in the new language
As AC has already said, there are many very old languages like LISP, Prolog and Smalltalk that demonstrate with abundant clarity that their designers had little (or no) care for whether CPUs could run them efficiently. LISP is the second-oldest high-level programming language edged out only by FORTRAN for goodness sake and yet it has always been capable of placing tremendous capacity demands on a host computer.
As for Smalltalk .. well, in any today's "modern" object-oriented programming languages are numeric literals treated as full objects? Of course not; modern language designers all reject that approach because it would place "too heavy" a burden on the host computer.
He omitted 'php' from serious php developer. Probably because we'd all have laughed at the notion.
Thanks, I quit listing all the languages I've programmed in after I got my first job (was probably 20ish then, honestly lost count by now), I certainly never got serious with php, but if that's your thing, PDO prepare yourself away, if that's really what needs doing.
I kinda prefer languages (and implementations) that don't require a ton of boilerplate before anything starts happening.
Lisp is, in fact, the perfect example of why academia can screw up language design. It needed garbage collection, an interpreter, higher-order functions and tons of other techniques that weren't available at the time. And even after the first interpreter was coded, it was far too slow for any practical application. It wasn't until the eighties that these technologies have developed to a level to allow for optimal interpreters. Which is why the claim that academia always try to design for efficiency is wrong, with their supercomputers and funds for dedicated Lisp machines they didn't need efficiency.
There are also languages today designed by academics, and a rise of programmers in language design is simply caused by the fact that nowadays everyone has a PC, and thus everyone has the means to design a language.
And they've been steadily progressing outside of large companies (with the exception of Java and .NET)
That's like saying "New cars have zero emissions (with the exception of those with internal combustion engines)." Java and .net are the elephants in the room.
https://www.eff.org/https-everywhere
Since I was a teenager, I thought of writing my own language that would pick bits I like out of each language and merge them. It would just create a hideous mess, of course,will be regarded by everyone else as a collation of the bad points of everything else.
Slightly off-subject, but I'd like to point out the key difference between your hypothetical "crap" language which never got created, and other crap languages which did get created and became useful.
Do you think the people who wrote Ruby, PHP, etc were able to do so by having an attitude of "I have some great ideas on how to make a good language, but meh, well, I'd do it but it'd probably turn out to be crap, and everybody would hate it and not want to use it"? Or do you think they said things more like "this might be a waste of time, but hell, what else am I gonna do? maybe I can have some fun with it."
Please do yourself, but especially the people around you a favor, man, and DROP this draining, negative attitude you carry around. You are (presently, not necessarily permanently) the black hole that people like me will engage warp engines to get away from at all costs. You can start by believing in your own self. Maybe you will weigh your options and in the end choose not to create your ideal language, but please at least believe that it's possible and that you could do it, if you really wanted to badly enough.
Doesn't everyone know that almost all new programming languages are dialects of C or Visual Basic?
I kinda prefer languages (and implementations) that don't require a ton of boilerplate before anything starts happening.
I do as well, but I've only ever found 2 (non-toy languages): C# and python. And both of those have their issues on large projects. I love me some C++, but only because I lug my boilerplate around with me. Java is the worst I've used for low % of lines of code that actually move the "real" program logic forward (with no macros and barely generics, there no damn way to get the clutter off the page - very frustrating).
Have you found a language that works well on 100-person projects without boilerplate?
Socialism: a lie told by totalitarians and believed by fools.
The quality of Python stands out by those standards, though. It has its share of issues, but it's had all the basics right for many years if you're doing anything small enough where you can live with soft typing. Oddly, I've never missed the lack of a macro language there, though that usually annoys me - maybe because you can properly structure code and yet keep it vertically dense.
Socialism: a lie told by totalitarians and believed by fools.
This article is written by SoulsSkill who is clearly misleading slashdot reader sinto a fantasy fictional world.
How does a shared web hosting customer use .my.cnf? Or is it the case that anything with a database backend should be served over HTTPS so that sessions don't get firesheeped, and by the time one has set up the dedicated IP needed for HTTPS in an environment that still has IE on XP, one might as well get a VPS anyway?
I used to spend a lot of time evaluating new languages. Now I just use this handy flowchart.
You really don't understand Lisp.
Making my point for me my friend.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Then it's convenient that bread and butter is the type of food you would find in the ghetto.
You're fucking delusional, pure and simple.
Because you don't write blogs in lisp and you don't setup HFT machines in Shockwave's lingo.
I don't really see this as an argument, I have used a great variety of languages over my
professional career and at no time have I found myself getting into trouble because of the
language I selected. A good programmer will take the time to evaluate the weaknesses of his
tools and act upon that knowledge. We are talking about PHP. PHP doesn't have weaknesses
because of magic quotes it has weaknesses because of the misuse of magic quotes.
-- no sig today
Have you found a language that works well on 100-person projects without boilerplate?
I stay out of 100 person projects, usually 3-4 MAX.
As far as boilerplate reduction, the Qt libraries on C++ are pretty good, and I usually extend them with functionality that makes our code as data driven as possible, so instead of 250 individual code chains to ferry events from inception through handling, we have 2 or 3 data driven interpreters, if you will; so, when a new function needs adding, stick it in the .ui editor with a couple of strings telling what it connects to and how and the back end just does it. Back end is necessarily more abstract, but I find much better code reuse this way, and much quicker illumination of rare bugs.
Where's your blub, then?
Is the ultimate language Corrado Bohm's P" , which has less syntax than any other turing-complete language?
I do get the argument that some languages are better than others at certain tasks. Even so, we have languages that aren't better than others at any tasks. A good example of that would indeed be PHP compared to, say, Python or Ruby. It just doesn't do anything better, and it has many quirks that make it objectively worse.
And I'm not talking about magic_quotes here. I'm talking about dumb design decisions like auto-converting string keys of associative arrays to integers if they can be so converted (which has the interesting side effect of $a['07'] becoming $a[7], but $a['08'] staying as it is).
Hmm... I never got that issue.
$str="08";
$int=4;
$arr=array(
$str=>"this",
$int=>"that"
);
var_dump(key($arr)); // string(2) "08" // int(4)
next($arr);
var_dump(key($arr));
var_dump(isset($arr[08])); // bool(false) // bool(true)
var_dump(isset($arr['08']));
var_dump(isset($arr[4])); // bool(true) // bool(false)
var_dump(isset($arr['04']));
var_dump(($arr)); // array(2) { ["08"]=> string(4) "this" [4]=> string(4) "that" }
but maybe I'm not getting what you describe(been a long day).
-- no sig today
My apologies, I did in fact mess this up. The conversion rules are that any string that is a canonical decimal representation of an integer is converted to integer. So if you set $a['7'], it's the same as setting $a[7]. However, if you set $a['07'], that key remains as is without conversion. Similarly, $a['-7'] becomes $a[-7], while $a['+7'] remains a string.
Problem i often have to battle:
Constructor leaving uninitialized POD member variables around. Has had horrible consequences and cost a lot of debugging.
Problems i sometimes have to battle:
Static initialization order fiasco. This one actually has a proper solution.
Stack corruption. Not very easy to spot or debug.
Problem i constantly have: balancing code complexity and code actually being safe. Keeping my head from exploding. Keeping in mind all the custom solutions we have - and corresponding guidelines what can and what can not be done so a complex application doesn't explode.
I'm sure you'll find some on the list which are exclusive or predominantly C++ problems.