March 03, 2017
> Slant does a pretty good job of providing a platform to these opinionated questions.
>
> https://www.slant.co/topics/25/viewpoints/11/~best-programming-language-to-learn-first~d

That's right.

Btw I've tested this simple "opinionated" search :

https://www.google.be/search?q=best+programming+language

At the bottom of the second page, there is indeed a slant result. Surprisingly it includes D :)

And there is indeed two links to Quora webpages in the first 10 results.

https://www.slant.co/topics/25/~best-programming-language-to-learn-first

I've personally used (C++, C#, Java, Go, Javascript, etc) or tried (Rust, Elixir, etc) many of the languages that people recommend on these webpages, and D has now become my personal #1.

Despite there is almost no other reference to the D language in the first 50 results of the "best programming language" search, which is sad.

Now we can try to improve the situation, or not.

But indeed the Quora-like results are the only places where D can be added to the list of recommended programming languages, as anybody can post his answer on these forums.

And this is already what I'm doing btw.

I mean, talking about D on the webpages which are in the first results of obvious google searches...
March 03, 2017
On Thu, 2017-03-02 at 15:02 -0500, Nick Sabalausky (Abscissa) via
Digitalmars-d wrote:
> […]
> I've used tools from JetBrains before. IMO, it should be easy for
> both
> vim and emacs to catch up to tools like JetBrains, Xamarin and such.
> All
> they need are a couple extensions to artificially boost memory
> footprint
> and introduce big startup and various UI delays. And done: instant
> parity with the popular IDE's. Should be easy enough to write.

IDEs, big memory footprint, yes.

IDEs, big startup cost, yes.

IDEs, vastly more supportive, useful software development functionality than editors, especially for debugging, yes.


It's that last one, the one about getting working software developed faster, that is the one that has moved me away from Emacs to IDEs. But everyone to their own, there is no universal truth in this arena.


-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

March 03, 2017
On Thu, Mar 02, 2017 at 07:12:07PM -0500, Nick Sabalausky (Abscissa) via Digitalmars-d wrote:
> On 03/02/2017 10:32 AM, bachmeier wrote:
> > 
> > I too learned to program using BASIC sometime in the mid-80's. The
> 
> Ditto here (well, late 80's). AppleSoft Basic on Apple IIc.

Ahh, the memories! (And how I am dating myself... but who cares.)  Such fond memories of evenings spent poring over AppleSoft code trying for the first time in my life to write programs. And those lovely error messages with backwards punctuation:

	?SYNTAX ERROR

:-)


[...]
> Back around the height of Java schools, I was a tutor for CS 101 (Intro to programming, using Java) students at a university around here (John Carroll University). There were two instructors who taught the course: A prof who'd been teaching it since well before the Java craze, and a Java-zealout who was constantly bragging how she'd come direct from a real software dev studio and had real-world experience with the right way of doing things.
> 
> The two approached their classes very differently:
> 
> The first one, the one who had been teaching code since before Java, started out by teaching basic flow-of-execution. "This statement runs, then the next one, then the next one." Conditions, loops, functions, etc.
> 
> The second teacher, the one who was kneck-deep in the "Java/OOP is our god, we must not question" madness that was common in that time period...didn't teach it that way. Those students were instead dropped straight into object-oriented modeling. Because, of course, OOP is "the right way to do everything", as most programmers believed circa early 2000's.

I was skeptical of OO, and especially of Java, at the time.  It's odd, given that I had just been learning C++ in college and was familiar with OO concepts, but when I saw the way Java pushed for OO to the exclusion of all else, I balked.  Call me a non-conformist or whatever, but every time I see too much hype surrounding something, my kneejerk reaction is to be skeptical of it.  I eschew all bandwagons.


[...]
> So, literally with ZERO exceptions: EVERY student I got from the first teacher's class pretty much knew what they were doing and were only coming to me for confirmation that they were on the right track. Invariably they were. And EVERY (again, zero exceptions) student I got from the second teacher's class was *completely* and utterly lost, and didn't even have enough grasp of the basics of basics that I was able to help them get a working program - at ALL.
> 
> Java definitely had good points (especially compared to the C++ that was so predominant before Java stole its thunder), but it also lead to some real major blunders and corrupted a lot of minds.

To be fair, though, Java as a language in and of itself is not bad at all. In fact, in its own way, it's a pretty nicely designed language. Idealistic, and in some sense approaching perfection. But in an idealistic bubble-world kind of way (the ugliest parts of Java, IMO, are where it has to interact with the real world -- but nevertheless, it isn't *bad* in itself).  The mentality and hype of the community surrounding it, though, seem to me to have gone off the deep end, and have bred rabid zealots, sad to say, to this very day, of the kind of calibre you described above.

(I also TA'd a Java course back in the day, and was quite appalled to observe the number of thoroughly-confused students who couldn't tell control flow from OO, because "classes" had been hammered into their heads long before they even understood what a statement was. Apparently, imperative statements are non-OO and therefore evil, so one was supposed to wrap literally everything in classes. Nobody ever explained how one would implement class methods without using statements, though.  I suppose calling other class methods was excepted from the "evil" label, but it seemed to escape people's minds that eventually nothing would actually get accomplished if all you had was an infinite regress of calling class methods with no imperative statements in between. But such was the rabid OO-fanaticism in those days.)


> > Do we have such a thing with D? Unfortunately we are moving in the wrong direction. New users are told to write configuration files for Hello World.
> 
> Lot of truth to that: I'm a big fan of using D instead of bash for scripting purposes, and about a couple months ago I found myself promoting that approach to a guy who writes a lot of bash scripts and python. It was embarrassing to show this as the "hello world" for replacing bash scripts with D:

Ha!  Let the rotten tomatoes fly, but I am a skeptic when it comes to dub (or any other such tool, really -- I mean no offense to Sonke). Sure they have their place in large software projects with potentially complicated external dependencies, but for Hello World? C'mon, now. Whatever happened to just:

	import std.stdio;
	void main() { writeln("Hello world!"); }

And seriously, what kind of koolaid have kids these days been fed, that they can no longer work with the filesystem, but needs to be spoonfed by some automated tool? Y'know, we can't just like download scriptlike.d and put it in a subdir, and then import it. Oh, no, there's no app for this, and you can't do it by pressing a big red button on your handheld touchscreen, so it doesn't count. Filesystem? What's that? I only know of downloading stuff in a browser which magically gets shuffled somewhere in the "memory" of my device, that automatically gets found when I need to find it because technology is just that cool.  What's the filesystem thing you speak of? Download folder? What's that?

Sigh.


T

-- 
Music critic: "That's an imitation fugue!"
March 03, 2017
On 03/03/2017 12:33 PM, H. S. Teoh via Digitalmars-d wrote:
> Ahh, the memories!

(Please keep memories marked with [OT]. Thanks! -- Andrei)
March 03, 2017
On 03/03/2017 10:40 AM, Russel Winder via Digitalmars-d wrote:
>
> IDEs, vastly more supportive, useful software development functionality
> than editors, especially for debugging, yes.
>
>
> It's that last one, the one about getting working software developed
> faster, that is the one that has moved me away from Emacs to IDEs. But

Perhaps ironically, I used to be big on IDE's (back before the bloat). But between the bloat that started happening to them about 10+ years ago, and various factors that led me to (oddly enough) actually prefer printf debugging, I switched to more basic editors with the whole "Linux is my IDE" setup.

> everyone to their own, there is no universal truth in this arena.
>

Definitely true.

But I do really wish though, that the IDE devs would start prioritizing efficiency, UI snappiness, and startup time. Yea, those toold do more, but they don't do THAT much more that would technologically necessitate THAT much of a performance discrepancy. (The plain-old-editors are far more capable than I think IDE users seem to beleive).

Those IDE efficiency improvements certainly wouldn't hurt their users, and it would cause less of a "cascading bloat" effect - where devs feel that have to always have top-of-the-line hardware (because that's what their IDE demands), so then they get accustomed to how their software runs on top-of-the-line hardware, so their software winds up bloated too, and they become so familiar with all of that, they they can't comprehend why any user would ever be using less than top-of-the-line hardware and develop disinterest and even disdain for users who aren't just as computing-gearhead as they are (because they've allowed themselves to become too far removed from the world of average Joe user).

March 03, 2017
On Fri, Mar 03, 2017 at 01:45:50PM -0500, Nick Sabalausky (Abscissa) via Digitalmars-d wrote:
[...]
> But I do really wish though, that the IDE devs would start prioritizing efficiency, UI snappiness, and startup time. Yea, those toold do more, but they don't do THAT much more that would technologically necessitate THAT much of a performance discrepancy. (The plain-old-editors are far more capable than I think IDE users seem to beleive).
[...]

Yeah.  I am actually skeptical of the whole GUI koolaid.  I'm pretty sure having a GUI is not a necessity to implementing the equivalent functionality of an IDE in a text-mode editor.  In fact, I've heard of Vim scripts that let you invoke a compiler and upon encountering a compile error correctly jump to the right line in the buffer containing the offending source file.  And invoking a debugger from an editor isn't exactly rocket science (and has been done since decades ago). And in theory, one could also invoke an external D lexer/parser to refactor code automatically (though IMAO, if you find yourself regularly reaching for the code refactor button, then something's wrong with the way you write code -- perhaps you ought to be thinking a bit harder before typing out code, y'know, like design stuff before coding, like the crusty old textbooks say).


T

-- 
Study gravitation, it's a field with a lot of potential.
March 03, 2017
On 03/03/2017 12:33 PM, H. S. Teoh via Digitalmars-d wrote:
> Call me a non-conformist or whatever, but every
> time I see too much hype surrounding something, my kneejerk reaction is
> to be skeptical of it.  I eschew all bandwagons.
>

Yea, I'm the same way. Not even a deliberate thing really, just my natural reaction. Can be good or bad, depending.

> To be fair, though, Java as a language in and of itself is not bad at
> all. In fact, in its own way, it's a pretty nicely designed language.

Right. Having come from C/C++ (C++ *was* "C with classes" at the time), Java taught me how a module system and class syntax *should* work. It made two big impressions on me:

1. How much quicker and easier it made certain programming tasks.

2. How much more of a gigantic pain it made other programming tasks.

That, incidentally, it was set me out on a language search that led to to (a very early version of) D.

> (I also TA'd a Java course back in the day, and was quite appalled to
> observe the number of thoroughly-confused students who couldn't tell
> control flow from OO, because "classes" had been hammered into their
> heads long before they even understood what a statement was.
> Apparently, imperative statements are non-OO and therefore evil, so one
> was supposed to wrap literally everything in classes. Nobody ever
> explained how one would implement class methods without using
> statements, though.  I suppose calling other class methods was excepted
> from the "evil" label, but it seemed to escape people's minds that
> eventually nothing would actually get accomplished if all you had was an
> infinite regress of calling class methods with no imperative statements
> in between. But such was the rabid OO-fanaticism in those days.)

Yup. That's a perfect description of exactly what I observed.

> Ha!  Let the rotten tomatoes fly, but I am a skeptic when it comes to
> dub (or any other such tool, really -- I mean no offense to Sonke). Sure
> they have their place in large software projects with potentially
> complicated external dependencies, but for Hello World?

Yea, I have a love/hate thing with dub.

Try to use something like vibe.d in a project that isn't built with dub (or think back to our own dsource days), and you'll quickly see why something like dub is needed.

But, the pain and uselessness of dub in projects that only need it for package management, and use their own choice of build system - well, that's been a huge thorn in my side for years.

It should have been a top priority from day one for dub to be usable like "pkg-config --cflags --libs". But even with all the work I put into "dub describe --data" it still isn't quite there :(

March 03, 2017
On Thursday, 2 March 2017 at 15:32:26 UTC, bachmeier wrote:
>
> I spend my days working with graduate students in economics departments. They have to program for their research, but most of them have never taken a programming class. I use RStudio server. Students need only a browser to do fairly complicated analyses. Once you eliminate the startup costs, it's amazing how easy it is for them to learn.
>
> Do we have such a thing with D? Unfortunately we are moving in the wrong direction. New users are told to write configuration files for Hello World.

A Jupyter kernel would go a long way to students being able to easily play around with it in a browser. There's already dabble (D REPL) that one could make use of. I was surprised at the breadth of the list of kernels available these days.
March 03, 2017
> Yeah.  I am actually skeptical of the whole GUI koolaid.  I'm pretty sure having a GUI is not a necessity to implementing the equivalent functionality of an IDE in a text-mode editor.

Personally I'm using a mix of Geany, Coedit and Code::Blocks for D development, depending on what I'm doing on that moment (coding, fixing compilation errors or debugging).

All three IDE are fine, the GUI "koolaid" works well, and moreover they start quickly on my venerable Linux laptop.

And I've heard that Visual D is nice too.

Obviously there are enough *FREE* efficient D IDE out there, starting fast with just enough visual aid.

I think that the programming tutorial using D as the first programming language is what is really need, and fortunately I see that now it's on his way.

What D needs too is probably more "fame" on the beginners forums.

How can people start learning a language, if they don't even know it exists, and perfectly fulfill their needs ?

To be well known, D just need that people talk about it more for beginners.

D is not *just* a language for meta-programming experts and execution speed addicts.

IMHO, it's also both the *simplest & complete* alternative to C++, Java and C# out there for people learning OO programming.

That must be said on every forum, at each occasion.

Stop trying to convince only the expert programmers, most of them are probably not interested in leaving their C++, Java or C# language and IDE for D...
March 03, 2017
On Fri, Mar 03, 2017 at 07:49:06PM +0000, Jared Jeffries via Digitalmars-d wrote:
> > Yeah.  I am actually skeptical of the whole GUI koolaid.  I'm pretty sure having a GUI is not a necessity to implementing the equivalent functionality of an IDE in a text-mode editor.
> 
> Personally I'm using a mix of Geany, Coedit and Code::Blocks for D development, depending on what I'm doing on that moment (coding, fixing compilation errors or debugging).
> 
> All three IDE are fine, the GUI "koolaid" works well, and moreover they start quickly on my venerable Linux laptop.

If it works well with your workflow, then all the more power to you!

All I'm saying is that, contrary to popular belief, GUI is not a *necessity* to implement the supposed superior features of IDEs over editors. After all, editors *have* advanced in the past 30-40 years too.


[...]
> Stop trying to convince only the expert programmers, most of them are probably not interested in leaving their C++, Java or C# language and IDE for D...

That's a curious statement, because I was trained mainly as a C/C++ programmer, and still use them for my job every day. I was very well-versed in the intricacies of C, and somewhat C++, yet I was very unhappy with them.  For several years I would scour the net during my free time to look for a better language.  I wasn't very impressed with D the first time I saw it, for various reasons, and it wasn't until I found a copy of TDPL in a local bookstore and decided on a whim to buy it, that I really got started with D.  And the rest, as they say, is history. :D

Even though I suspect that I'm in the minority here, I'm pretty sure there's got to be others out there in C/C++ land who are like me, longing for a better language but just haven't found a suitable candidate yet.  So don't discount us C/C++ veteran folk just yet!


T

-- 
Many open minds should be closed for repairs. -- K5 user