>>1 C has been deprecated by C++ LISP has been deprecated by Clojure
Name:
Anonymous2016-08-03 6:04
C++ can do most of what C can do and more, and it's one of the more versatile languages (whereas Java uses a similar OOP model to C++, but it makes OOP the ONLY way to do things). And most of the benefits of C can be achieved by using C-style code in C++ anyways. Pure C makes sense for writing OSes and programming embedded system, but for making normal applications C++ seems much more suitable.
Name:
Anonymous2016-08-03 8:29
>>8 that's the problem here: C++ is good when it's used as a more convenient way of writing C (although the fact that struct isn't acutally a struct is pissing me off) or if you want simple OOP. more complex OOP ends up looking like crap and if you try to use generic programming, template syntax will make you cry.
Name:
Anonymous2016-08-03 8:43
>>9 I don't write C++ because I like looking at C++ template syntax. I write C++ because I like thinking about generic semantics.
Name:
Anonymous2016-08-03 10:28
>>10 then you should learn a few other languages as there are better ways of doing generic programming than C++ templates
Name:
Anonymous2016-08-03 13:16
To have a real type system instead of the useless crap designed by uneducated inbreds that these languages have?
Name:
Anonymous2016-08-03 18:14
Why do people need anything more than assembly and VHDL?
Name:
Anonymous2016-08-03 20:49
Why do people need anything more than NANDs?
Name:
Anonymous2016-08-04 1:40
>>8 Nowadays you can program embedded systems in modern C++ (i.e. C++11 and later) with type and memory safety guarantees that are next to impossible to achieve in C without sacrificing speed.
[]'s and :keywords make Clojure an unacceptable lisp
Name:
Anonymous2016-08-22 21:58
:keywords are a historical part of Lisp.
Name:
Anonymous2016-08-23 1:01
Clojure is functional programming too
Name:
Anonymous2016-08-23 2:01
>>41 Lisp is a functional language, but it doesn't mean everything you can do functional programming in is a Lisp. Haskell is a functional language but I wouldn't consider it a Lisp. It's even possible to use a functional programming style in C, but that doesn't mean C is a Lisp.
I consider Clojure to be a Lisp, however saying it's a Lisp because it's a functional language is pretty silly.
Then why does Wikipedia say Clojure is a Lisp dialect?
Because Wikipedia can say whatever the hell it wants, and it's basically Clojure's own main claim.
Besides, a dialect of a language can be completely ununderstandable to a speaker of the main language. The term "dialect" can have the same connotation here.
Name:
Anonymous2016-08-23 6:17
>>46 doesn't the term 'dialect' (when it comes to non-/prog/ramming languages) mean it's understandable to speakers of main language and when it stops being understandable it becomes a separate language?
Name:
Anonymous2016-08-23 6:19
>>46 Someone that knows CL should be able to understand Clojure as much as Racket for that matter. Understanding and knowing are not the same here.
Name:
Anonymous2016-08-23 10:02
>>47 No. There are German and English dialects that are ununderstandable to native speakers.
>>49 then what's the difference between language and a dialect? I thought it's this but maybe not.
as for C and Java - when it comes to programming languages, it is all very inconsistent. you have BASIC dialect and Lisp dialects (plus when it comes to Common Lisp you also have implementations which may add their own idiomatic stuff) but when it comes to C, people are only talking about C-like languages. I have no idea why this is the case.
then what's the difference between language and a dialect?
While there's no hard & fast definition, especially with programming languages, I believe it has at least something to do with standardization.
BASIC was never meaningfully standardized, so it's just a bunch of "dialects" surrounding some common core concepts. Before Common Lisp standardization, there were a bunch of Lisp "dialects". But C started off early with a hard spec, mimicing machine specifics, so you don't really get "dialects", but separate C-based/C-"family" languages that broke the standard, instead of supersetting it.
Clojure certainly "inherits from" Lisp, as Java does from C. But Clojure diverges from the fundamental assumptions of Lisp (s-expressions primarily, and others more arguably), while dialects kept the same foundation and generally added new semantics. Plus, it came after and broke from the Common Lisp standard, which has primarily appropriated the standalone term "Lisp".
What, son? Early C was whatever the Unix compiler did. C changed a lot over the years before the K&R book and changed more between then and C89 (the first standard). C wasn't standardized when C++ and Objective C were first made.
C89 completely changed the function definition syntax and semantics, what register does, the behavior of multiple structs/unions with the same field name, the preprocessor's substitution semantics, and added void *, const, and a lot more. It also made a lot of things "undefined" when they used to be well-defined because C was expanded to run on platforms and memory models it wasn't originally intended for.
Name:
Anonymous2016-08-23 23:28
>>53 The K&R book counts as the first published standard, which wasn't too many years after C first went live. Unix also helped keep the language constrained and specific. I didn't get into C until later (asm was sufficient!), so I'm not sure how much non-Unix C was going on in the mid/late 70s.