There would have to be a certain kind of program that was easier to write in the new language than in most of the alternatives. Most of that would have nothing to do with the language itself, but with ``implementation details'': Can I read documentation at the REPL? Can I use a standardized tool to download and install libraries I need? Can I develop on Linux and deploy on Windows/Mac (or vice versa) without managing all the infrastructure by hand?
Most of this can be faked with C. Python does some of it better. Common Lisp tries, but you have to wrap your head around the package semantics before you can get anything done, and it's useless without Emacs and SLIME. Haskell is moving in this direction, but slowly; Go is outrunning it. D isn't even close. Rust is too young for it to matter right now but someday it will live or die on these questions.
If your language tackles these problems, someone will use it even if it's shit. If you make no effort, then it's a toy.
A good way to define and use custom notation. No messing around with source files and other menial jobs.
Name:
Anonymous2012-12-03 6:07
>What does a good programming language have?
popularity
Name:
Anonymous2012-12-03 6:17
R5RS
Name:
Anonymous2012-12-03 6:32
What is actually needed:
Algebraic data types
Support for efficient and correct abstractions that looks like builtins
Several sort of polymorphism (not only OO)
Non shitty syntax
Deterministic resources management
Operator overloading
local function with static link to parent
Closures or at least C# "delegates"
Strong-typing
Static types (optional)
What every new language does:
Build an incorrect web server in 3 lines
Shitty "original" syntax
Optional semi-colons
Lacks ADT
Unfixed switch
Shitty ideas like all of Perl
Random limitations like Python GIL
Shit comprehensions
Fancy slow constructs that silently allocate memory
Half arsed Unicode
Name:
Anonymous2012-12-03 6:38
>>3 Can I read documentation at the REPL?
Documentation is not code. man pages exist for that purpose, and they do a very pretty job of it.
Can I use a standardized tool to download and install libraries I need?
The package manager.
>>8 Documentation is not code. man pages exist for that purpose, and they do a very pretty job of it.
Enjoy memorizing every single function in every library you will ever use or plan to use, bowelfield
Name:
Anonymous2012-12-03 7:17
>>11
Do you even know what a man page is, ``cudder''? Did you even read the second two-thirds of my post?
>>13
>LLLEEEEEEEEEEEEEEEEEEEEEEEEEEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL>LELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>EGINWIMGOINGWIM /G/RO
>LE LEL FACE
>LEEEEEEEEEEEEEEEEEEEEEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
Name:
Anonymous2012-12-03 9:26
just use javascript. it will be way faster and far more powerful than anything you will ever be capable of creating. hell it's already beaten every other language already
It does not have two distinct property access operators for pointers and instances/references. It is a trivial detail that a compiler can figure out automatically, and there are no cases where you can use both . and ->. Fuck C++.
>>3
What? Try learning APL before you complain about Common Lisp simple package declaration, and awesome functions built just for DSL.
Haskell is just inception.
Name:
Anonymous2012-12-03 16:45
>>7
This, except you forgot "easy concurrency" in the "What is actually needed" section. CPU clock frequencies haven't increased much since about 2005, but the number of cores has and will continue to do so.
Name:
Anonymous2012-12-03 17:10
>>26 easy concurrency
Go, Limbo, Alef, Occam, SML, Newsqueak, Stackless Python, and so on.
Name:
Anonymous2012-12-03 19:34
>>27
We're discussing a hypothetical new programming language. Those are useful examples though.
>>35
Your computer is not a toy. If you operate it without appropriate safety precautions (ergonomic keyboard + foot pedals) then you are just asking for trouble.