Hacker News new | ask | show | jobs
by skrebbel 2856 days ago
Isn't that fantastic? The whole idea that developer productivity (and thus, tool support) shouldn't be a part of programming language design has been flawed from the beginning and I'm happy times are finally changing.
5 comments

It's one of the reasons I like Java. People call it a "verbose" language, but it's such a simple language syntax-wise that the IDE knows most of the time exactly what's going on in the editor window. Static typing helps, too, of course.

I remember working with C++ in Visual Studio when that new refactoring plugin became popular (tomatoe something something? later bought by Microsoft) and although the plugin tried its best, it often stopped working with files with a lot of ifdefs and macros.

B removed some features from BCPL that were too expensive to implement. I never understood why they didn't continue that idea in C by applying it to the syntax as well. Wirth knew what he was doing.

I started programming with Turbo Pascal

https://en.m.wikipedia.org/wiki/Turbo_Pascal

and as far as I remember I never had to leave the IDE. The step-by-step debugger felt like magic.

That's true, Turbo Pascal was awesome. But to stay realist, it was rather an exception than the rule at the time.
There was also Turbo C/C++, Turbo Basic, Turbo Prolog.

On the Microsoft side, there as Quick C, Quick Basic, etc.

IDEs were the norm rather than the exception in the 80s and 90s for DOS machines. Writing code on DOS with a plain-text editor was a little unusual, whereas on Unix it was a norm.

Yes. This is one of the reasons that Windows stomped UNIX everywhere outside of big iron servers. Windows developers had access to much more advanced development environments that were very productive compared to vim+c and maybe a buggy C++ compiler if you're lucky, which is what UNIX vendors were offering at the time.

Visual Basic, Delphi, MS Access, Visual FoxPro, Visual Objects, Visual Studio, C++Builder, Macromedia Flash, even obscure stuff like REBOL - all supported very fast iteration on client side business CRUD apps that connected to a database.

It's only in recent times that we lost this and came to believe that buggy bloated text editors implemented in HTML plus a giant pile of pre-processors in which everything is coded by hand and the frameworks are obsoleted every six months is a good developer experience. Compared to what we had in the 90's the level of polish and integration is far, far lower in modern toolchains.

C# also has always been done like this, but 20 years ago only Microsoft could pull that off.
The father of C# also created Typescript and we now see the same level of language tooling support OOTB with the Typescript compiler.

It's a fantastic initiative -- in such a short time we see many IDEs support consistent auto-complete, refactoring and so much more.

He also created Turbo Pascal and Delphi, which both had pretty great tooling support in their respective heydeys.
C# emerged around the time that Java IDEs emerged. Basically, MS did a decent job with the C# language and tooling. However, it was very much inspired by Java, Java IDEs and Microsoft's own Java IDE (Visual J++).

I think IBM was first with supporting refactorings for Java in Visual Age and Eclipse. Refactorings themselves emerged out of the Smalltalk community.

MS was very motivated to support that for C# as they were getting worried about losing marketshare to Java at the time and because J++ got a lot of negative press (compatibiltiy issues, vendor lockin, the usual MS stuff). In the end C# was held back by the same factors that held back J++ and it took them until very recently to openly support it on platforms other than Windows.

Why C# exists isn’t very relevant to that, Microsoft actually made the IDE team a first class member st the table during C#’s design and evolution. Such and such feature thought to be difficult to tool even if it can compile? Well, fix it or cut it.

Microsoft intellisense (aka code completion) was truly a first back in 1997 (then just for VB and C++).

I think they were very much inspired by Delphi and other Borland products at the time. Delphi was pretty awesome in 1996/1997.
> I think they were very much inspired by Delphi and other Borland products at the time.

Inspired by is an understatement, the connection is more intimate: https://en.m.wikipedia.org/wiki/Anders_Hejlsberg

There were zillions of language-specific IDEs in 2000 when C# was announced.
Yes, but none of those IDEs were developed concurrently with the language by tightly integrated teams (well, except smalltalk).
If that was the case for C#/.NET, they really didn't have much to show for it at time of release. IntelliJ IDEA that came out a year later was a fancier, more 'integrated' IDE.

But beside smalltalk, there were lots of others. All the commercial Lisps, Dylan etc. Somewhat more mainstream-ish - the NeXT Objective C environment is a good and much earlier example.

There were lots of interesting things about .NET when it came out, the IDE-ness of it doesn't strike me as one of them at all.

Yes they were. Delphi and Visual Basic are the most obvious examples of IDE-centric languages. You couldn't even buy the compiler separately from the IDE.
VB comes from the same lineage. Heck, even delphi does, obviously.
I do think it's great, but I'm worried that as Kotlin grows, so does Jetbrains hold on IntelliJ and the IDE market. IMO, any change that benefits IntelliJ should theoretically be applicable to NetBeans.

Maybe it's already this way? I'm really not sure, but I'd appreciate a NetBeans or IntelliJ dev to clarify. It'd be awesome if these changes were done collaboratively.

IntelliJ is "the" IDE market, but not the entire ecosystem.
Sure, as long there isn't much to improve in the language itself.