Thread overview | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
May 25, 2013 [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Attachments:
| I think this have not been posted yet around here but might be interesting to the D community as it is actually criticizing several languages including D but with an interesting aproach: http://sebastiansylvan.wordpress.com/2013/05/25/language-design-deal-breakers/ Joel Lamotte |
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Klaim - Joël Lamotte | On Sun, 26 May 2013 00:50:28 +0200 Klaim - Joël Lamotte <mjklaim@gmail.com> wrote: > I think this have not been posted yet around here but might be interesting to the D community as it is actually criticizing several languages including D but with an interesting aproach: > > http://sebastiansylvan.wordpress.com/2013/05/25/language-design-deal-breakers/ > Hah, now that's my kind of dude: "I know you’re supposed to be diplomatic and claim that there’s two sides to this story, and no real right answer, but really people who think dynamic typing is suitable for large scale software development are just nuts. They’ll claim it’s more flexible and general but that’s just nonsense in my opinion." Classic :) It's weird when I see my thoughts written by someone else (and worded better that I would have), but he nailed it there. I do think his "inertia" with C++ is cranked way into overdrive, though. Forget waiting for a huge improvement, I'd have been happy to ditch C++ even for a small improvement. C++ is such a pain IMO that using it has about as much inertia as ice skates on concrete. Still though, great article. He has another great bit in a different article that one links to: "I think writing high performance games in Java or C# is kinda crazy, and the current trend of writing apps in HTML5 and JavaScript and then running it on top of some browser-like environment is positively bonkers. The proliferation of abstraction layers and general “cruft” is a huge pet peeve of mine – I don’t understand why it takes 30 seconds to launch a glorified text editor (like most IDEs – Eclipse, Visual Studio, etc.), when it took a fraction of a second twenty years ago on hardware that was thousands of times slower." - http://sebastiansylvan.wordpress.com/2013/04/18/on-gc-in-games-response-to-jeff-and-casey/ That said, even though I've never been enthusiastic about C# as "high performance games" langauge, I *do* definitely understand the game industry's increasing usage of it considering that aside from D (which still isn't quite ready-to-use on most gaming platforms) their only other real alternative is C++. |
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | On 26/05/13 11:59, Nick Sabalausky wrote: > On Sun, 26 May 2013 00:50:28 +0200 > Klaim - Joël Lamotte <mjklaim@gmail.com> wrote: >> I think this have not been posted yet around here but might be >> interesting to the D community as it is actually criticizing several >> languages including D but with an interesting aproach: >> >> http://sebastiansylvan.wordpress.com/2013/05/25/language-design-deal-breakers/ >> > > Hah, now that's my kind of dude: > > "I know you’re supposed to be diplomatic and claim that there’s two > sides to this story, and no real right answer, but really people who > think dynamic typing is suitable for large scale software development > are just nuts. They’ll claim it’s more flexible and general but that’s > just nonsense in my opinion." > > Classic :) It's weird when I see my thoughts written by someone else > (and worded better that I would have), but he nailed it there. > > I do think his "inertia" with C++ is cranked way into overdrive, > though. Yes. > Forget waiting for a huge improvement, I'd have been happy to > ditch C++ even for a small improvement. C++ is such a pain IMO that > using it has about as much inertia as ice skates on concrete. I found shifting from C++ to C an improvement. (Yes, I learnt C++ before I learnt C.) I should mention that this was back in the mid 90s and C++ may have improved since then :-). Peter |
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
On Sun, May 26, 2013 at 01:27:55PM +1000, Peter Williams wrote: > On 26/05/13 11:59, Nick Sabalausky wrote: [...] > >Forget waiting for a huge improvement, I'd have been happy to ditch C++ even for a small improvement. C++ is such a pain IMO that using it has about as much inertia as ice skates on concrete. > > I found shifting from C++ to C an improvement. (Yes, I learnt C++ before I learnt C.) I should mention that this was back in the mid 90s and C++ may have improved since then :-). [...] You're not the only one who felt that way. At my day job we also "upgraded" from C++ back to C. I've often ranted about our horrific experience with a hugely over-engineered C++ system that can literally do *anything*... except that nobody understood how to use the thing. It had dtors with side-effects that did useful work, for instance, and there were so many levels of abstraction it was bordering on insanity. Once I had to make a function call to said horrible code... it involved going through 6 layers of abstraction, two of which were fwrite()ing function arguments to a temporary file, then fork() and exec()ing an auxilliary utility that fread() the arguments back, and *then* dispatched them across an IPC link... We're now back in C-land, and boy the code is much cleaner, and *faster*, even though it's a lot harder to read and more tedious to maintain. Like I've said many times before, the only way I found coding in C++ tolerable was to use it as "C with classes". Trying to do real OO in C++ is an exercise in masochism. Even Java with its baroque verbosity and prolific boilerplates beats C++ hands-down in this respect. And don't even mention templates, which are already nasty enough to work with in simple generic types; they are utter monstrosities when you start getting into CTFE and compile-time codegen. D templates, CTFE, and mixins, by contrast, are actually *pleasant* to work with. T -- Computers shouldn't beep through the keyhole. |
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Peter Williams | Am 26.05.2013 05:27, schrieb Peter Williams: > On 26/05/13 11:59, Nick Sabalausky wrote: >> Forget waiting for a huge improvement, I'd have been happy to >> ditch C++ even for a small improvement. C++ is such a pain IMO that >> using it has about as much inertia as ice skates on concrete. > > I found shifting from C++ to C an improvement. (Yes, I learnt C++ > before I learnt C.) I should mention that this was back in the mid 90s > and C++ may have improved since then :-). > > Peter After being a Turbo Pascal heavy user, C always felt backwards to me with its weak types, lack of proper strings, modules and namespaces. Even with its warts C++ offers a more cosy environment in terms of strong typing, modularity and abstractions to use, at least to me. I am a strong supporter of Microsoft's decision to dump C from their tooling. Only with such actions can a system programming language be eventually replaced. -- Paulo |
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Klaim - Joël Lamotte | On Saturday, 25 May 2013 at 23:21:59 UTC, Klaim - Joël Lamotte wrote:
> I think this have not been posted yet around here but might be interesting
> to the D community as it is actually criticizing several languages
> including D but with an interesting aproach:
>
> http://sebastiansylvan.wordpress.com/2013/05/25/language-design-deal-breakers/
>
> Joel Lamotte
I agree on every single point.
|
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paulo Pinto | On 5/26/2013 12:03 AM, Paulo Pinto wrote:
> After being a Turbo Pascal heavy user, C always felt backwards to me with its
> weak types, lack of proper strings, modules and namespaces.
I had the opposite experience. Being a Pascal user from the late 70's, I hated Pascal's limitations. A friend loaned me K+R and it was like someone opened a window. I never wrote another line of Pascal; I threw it under the bus, and couldn't work up any interest in TP (which came along later).
Proper strings? Those length-prefixed ones that couldn't be longer than 255 characters? Argh. C botched them too with 0 terminated ones, but at least they were usable.
|
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Peter Williams | On Sun, 26 May 2013 13:27:55 +1000
Peter Williams <pwil3058@bigpond.net.au> wrote:
>
> I should mention that this was back in the mid
> 90s and C++ may have improved since then :-).
>
I dunno. The more I learned about C++'s more advances features the more disillusioned I became with it. I was always happiest (or at least, least unhappy) with the "C with classes" form of C++.
But then again, maybe that has nothing to do with "older C++ vs newer C++"?
|
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to H. S. Teoh | On Sat, 25 May 2013 22:44:52 -0700
"H. S. Teoh" <hsteoh@quickfur.ath.cx> wrote:
>
> Like I've said many times before, the only way I found coding in C++ tolerable was to use it as "C with classes". Trying to do real OO in C++ is an exercise in masochism. Even Java with its baroque verbosity and prolific boilerplates beats C++ hands-down in this respect.
>
I always used to consider myself comfortable with C/C++ until I came across Java.
To mix metaphors, that was a double-edged eye-opener: Java (this was circa v1.2-v1.4) taught me everything that was wrong with C++'s classes and *cough* module system, but it *also* taught me that Java wasn't the answer either. ;)
|
May 26, 2013 Re: [article] Language Design Deal Breakers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Am 26.05.2013 09:36, schrieb Walter Bright:
> On 5/26/2013 12:03 AM, Paulo Pinto wrote:
>> After being a Turbo Pascal heavy user, C always felt backwards to me
>> with its
>> weak types, lack of proper strings, modules and namespaces.
>
> I had the opposite experience. Being a Pascal user from the late 70's, I
> hated Pascal's limitations. A friend loaned me K+R and it was like
> someone opened a window. I never wrote another line of Pascal; I threw
> it under the bus, and couldn't work up any interest in TP (which came
> along later).
>
> Proper strings? Those length-prefixed ones that couldn't be longer than
> 255 characters? Argh. C botched them too with 0 terminated ones, but at
> least they were usable.
>
Pascal string limitations were only an issue in classic Pascal, both Extend Pascal its sucessors Modula-2 and so on follow a model similar to what D offers.
Now it is too late for it, but at the time C could have stayed as powerful as it is while offering:
- proper modules, or at least namespaces
- no automatic conversions between arrays and pointers. how hard it is to write &a[0]?
- arguments by reference, no need to check for null for every parameter
- strong typed enumerations
- memory allocation without requiring the developer to use sizeof everywhere
- strings similar to what D has
- proper arrays, after all the compilers for other languages always offered control over when bound checking code was generated
In the end, same syntax, just some semantic improvements on the type system.
But now it is too late, we only have modern C++ with its warts, or hopefully D, Rust, Go, C#, or something else as possible replacement.
However, given that C and UNIX are one and only, it will outlive us all.
--
Paulo
|
Copyright © 1999-2021 by the D Language Foundation