Computer science inverts the normal. In normal science, you're given a world, and your job is to find out the rules. In computer science, you give the computer the rules, and it creates the world.
If you want to go somewhere, goto is the best way to get there.
It's very hard to explain to people who don't program, but the object-oriented programming system made programming the Mac and iPhone so easy.
Grant, if we edited Fortran, I assume that you'd put a column thing in there.
I'm OK with procedural code, and the web is a top-down type of problem. It makes sense to me that you have HTML, you spit out a bunch of HTML, then you call a function to do something and then call another function.
Lisp isn't a language, it's a building material.
I used to be enamored of object-oriented programming. I'm now finding myself leaning toward believing that it is a plot designed to destroy joy.
The most important precedents deal with the whole idea of symbolic programming - the notion of setting up symbolic expressions that can represent anything one wants, and then having functions that operate on both their structure and content.
Object-oriented programming as it emerged in Simula 67 allows software structure to be based on real-world structures, and gives programmers a powerful way to simplify the design and construction of complex programs.
Java isn't platform independent; it is a platform
FORTRAN, the infantile disorder, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.
Every market we go to, we have a domain-specific language. Every domain-specific language, underneath, has an architecture.
Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.
If you're talking about Java in particular, Python is about the best fit you can get amongst all the other languages. Yet the funny thing is, from a language point of view, JavaScript has a lot in common with Python, but it is sort of a restricted subset.
Certainly not every good program is object-oriented, and not every object-oriented program is good.
I made up the term "object-oriented," and I can tell you I did not have C++ in mind.
Lisp was far more powerful and flexible than any other language of its day; in fact, it is still a better design than most languages of today, twenty-five years later. Lisp freed ITS's hackers to think in unusual and creative ways. It was a major factor in their successes, and remains one of hackerdom's favorite languages.
Ruby inherited the Perl philosophy of having more than one way to do the same thing. I inherited that philosophy from Larry Wall, who is my hero actually. I want to make Ruby users free. I want to give them the freedom to choose.
Of course, C proved indispensible to the developers of all its alternatives. Dig down through enough implementation layers under any of the other languages surveyed here and you will find a core implemented in pure, portable C
A good programming language is a conceptual universe for thinking about programming.
APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
Dynamic typing is not necessarily good. You get static errors at run time, which you really should be able to catch at compile time.
Our ultimate goal is extensible programming (EP). By this, we mean the construction of hierarchies of modules, each module adding new functionality to the system.
The use of anthropomorphic terminology forces you linguistically to adopt an operational view. And it makes it practically impossible to argue about programs independently of their being executed.