Tag Info

Hot answers tagged

18

I believe this is primarily historical thing. SQL was primarily used in businesses for making business applications. Some companies build their livelyhood on selling SQL solutions and they used their money to advertise and push SQL into minds of many. This was especially empowered by how important data is for business people. This is why SQL won over it's ...


13

The goal of having a compiler in the language that is being compiled is often part of the practice of "eating your own dog food." It demonstrates to the world that you consider the language, compiler, and ecosystem of supporting modules and tools to be "good enough for serious work" or "production ready." It also has the virtuous effect of forcing those ...


13

Wouldn't it make more sense to spend the effort working in something that will give better results? Like what? The nice thing about compilers is that they don't have many dependencies. This makes them good candidates for a new language that likely doesn't have a very large or diverse standard library yet. Better yet, they require a variety of things, ...


9

People create new general purpose languages for one main reason: they hate at least one thing about every other language out there. This is why so many languages don't get off the ground. You have a great idea for a language that would improve your programming life, but you have to make the first implementation in a language that annoys you in at least ...


7

Typically, companies standardize on a single language for a variety of reasons (tool support, talent availability, interoperability, etc). I've worked for some companies that used multiple languages, but they were the exception. Having individuals pick their own technologies is usually a recipe for disaster. When the PHP guy leaves, if nobody else knows PHP ...


6

First off, "modern OOP" is not a deviation from Alan Kay's OOP. Kay may have coined the term itself, but Smalltalk-style "OOP" is a significant deviation from actual class-and-object programming as it existed before Smalltalk. The original OOP system was called Simula, and it was an extended dialect of of ALGOL whose OOP concepts would feel right at home ...


5

The reason is actually pretty simple. It has nothing to do with how useful the language is for a given task and everything to do with how maintainable the code is. Reading an SQL statement, many developers will be able to determine what most basic queries do without knowing the language. They might have a harder time in the case of complex examples but ...


5

It should be pretty obvious that if you have two or more persons working on the same program, they need to use the same language, or at least the same (small) set of languages. So when there is is only one team or department in the company who does software development, they will typically not make their lifes harder by unnecessarily chosing a new language ...


4

There is another reason. Practically speaking, SQL is useful for data persisted on disk. So databases are used to store data for a "long" time (several months). Every SQL database (e.g. PostgreSQL, MySQL, Oracle, ....) is managing data on disks (or SSDs, i.e. hardware which could keep data if properly powered down). However, most Prolog implementations I am ...


3

In this context "redundant" means that program's behavior is described multiple times. But "not duplicative" means that each of the of the specific types behaviors is different. For example, automated testing. The code is "redundant", because the behavior is described twice : once in code and once in form of automated test. But it is not duplicative, ...


2

If you want to have a compiler for language X be self-hosting, your first have to implement it in some other language, say Y, such that it takes input for language X and spits out assembly code, or some intermediate code, or even object code for the machine the compiler is running on. You want to choose language Y to be as similar to language X as possible, ...


2

Method chaining implies that multiple method calls are related, with each call building on the previous one. An example is a "fluent" style of programmatically querying the database. $posts = Post::where(array('name' => 'Test')) .order_by(array('date' => 'desc')) .limit(10); (Forgive my lackluster PHP, it's been quite a while since I wrote ...


2

They mean that you shall be required to write things that could reasonably be inferred from other things in the code. But you will not be implementing the same thing twice. An example of what they mean is type systems. You might be able to infer the existence and types of variables from their usage, but the redundancy of explicit declaration can catch ...


1

One aspect not mentioned so far is the push for "open" systems in the 1980s and 1990s. In many places, software vendors would have to provide industry standard access to the data in their databases. At the time, SQL was an established standard which was well know and understood; Prolog was pretty esoteric and academic. Once you started getting interfaces ...


1

Is it possible to produce a programming language that is not well designed for writing a compiler but is well designed for some other purpose? Looking at a language like SQL I suppose the answer is yes. But languages of that nature are not general purpose.


1

Who says that? ...anyway, it's just an opinion. Some might agree, some may not, there is no right or wrong here. Some languages have compilers written in itself, others don't. Whatever. Nevertheless, I think it's a nice exercice/proof-of-concept if a language is able to "self-compile" ...it's just ...nice ...and it prooves the language is suited to do some ...


1

The answers so far have mentioned extreme functional languages. If you're looking for something a bit closer to the mainstream, have a look at Boo. Its syntax is heavily inspired by Python, but it's statically typed. Type declarations are required for defining class members, but for variables, method arguments and return types everything can be optionally ...



Only top voted, non community-wiki answers of a minimum length are eligible