News for hackers. Stuff that matters.
Re:Green vs. Brown Programming Languages by agbell on Thursday April 22, 2021 @10:15AM (#26903010)
Author here. I wanted to dig a little into data from the Stack Overflow survey on what made programming languages loved or hated and I think what I found is pretty interesting: it seems like people don't like the languages where they have to do maintenance work.

Python and C# seems like outliers here though. People really love them.

Re:Green vs. Brown Programming Languages by skrtskrt on Thursday April 22, 2021 @11:17AM (#26903691)
About 4 years into my career I am really really reaching the end of my rope with Python.

Type annotations have improved things a bit, but since it's not real, or enforced by anything, every library types things differently & often incorrectly, if at all, and the type annotation system itself still has massive limitations.

That's not to mention the package management ecosystem.

I'm getting into Go and Rust. Go is fine but it would be a million times better if it had proper enums & pattern matching for result & options types. Being able to define a class of errors as an enum in Rust makes handling them so easy.

Rust is really cool, but I know I am barely scratching the surface with it and it would be hard to convince any of the Python shops I have worked in to go to Rust due to the learning curve.

All the Python shops I have worked have eventually started to write some stuff in Go, except the one shop which is just data/PySpark stuff .

Re:Green vs. Brown Programming Languages by tcbasche on Friday April 23, 2021 @01:30AM (#26911282)
Putting aside the dreary package management situation with Python (although perhaps Poetry will scratch that itch?) codebases really only shine with comprehensive unit testing, linting, static analysis and a bit of discipline to stop it from degrading. Although perhaps that’s applicable to any large codebase.
Re:Green vs. Brown Programming Languages by skrtskrt on Friday April 23, 2021 @09:16AM (#26914425)
I agree.

Poetry is good but not good enough to use at work yet. Also - not Poetry’s fault - many Python packages are miserable at listing and versioning their dependencies correctly.

Re: everything else, you’re right but it gets really tiring writing tests that are handled by the type system in other languages.

Go has this problem too to a certain degree since multiple error subtypes can’t be expressed as an enum. Just errors.Is and errors.As everywhere.

Re:Green vs. Brown Programming Languages by offtop5 on Thursday April 22, 2021 @10:21AM (#26903055)
I like C# simply due to the tooling. I legit left a job since they made me use Eclipse with Java.
Re:Green vs. Brown Programming Languages by mariodiana on Thursday April 22, 2021 @10:36AM (#26903228)
The more experience I gain as professional software developer, the more I begin to appreciate that what matters is the entire "ecosystem," rather than what language I'm programming in.

What's the IDE like? How are dependencies managed? Is there a solid framework, as opposed to "move fast and break things" frameworks or "scores of amateurish third-party add-ons to choose from" to solve everyday problems? What's the programming community like? What kind of companies use these solutions, and what's the culture like there?

Tools a big part of what we do. If I were a mechanic, I would rather work on Hondas with a good set of tools than I would Ferraris with tools bought at WalMart.

Personally, I've done only a tiny amount of C# development. I'd have no problem going back to that.

Re:Green vs. Brown Programming Languages by zwieback on Thursday April 22, 2021 @11:32AM (#26903896)
Yeah, C# and Python are my two daily drivers. I think a good case can be made for C# due to excellent tooling and sitting in the sweet spot for statically typed languages: less enterprisey and more practical than Java and less painful than C++.
Re:Green vs. Brown Programming Languages by kaba0 on Thursday April 22, 2021 @01:10PM (#26905167)
I never understood why a company would enforce the use of a specific IDE. If they can’t set up .gitignore files and formatting properly, they should not be doing IT.
Re:Green vs. Brown Programming Languages by offtop5 on Thursday April 22, 2021 @01:30PM (#26905418)
To be fair eclipse and IntelliJ do different things to set up run configurations. Although I'll agree this is a very very bad sign, I left that job as soon as I could. I will say socially they did a lot of fun stuff, we had tons of parties and everything. Felt almost like a college campus, the actual work environment was horrible though.
Re:Green vs. Brown Programming Languages by mywittyname on Thursday April 22, 2021 @04:09PM (#26907556)
Standardized IDEs are incredibly important for productivity in complex software projects. Large applications can get to the point where the build system and IDE kind of meld together, and custom IDE plugins are required to navigate or build the code base.

I've worked at a place where developers didn't do any IDE configuration. The IDE (Visual Studio) was customized by another department then was pushed out to developer machines. This meant that developers could focus on building software and not messing around with configuration and plugins. It also ensured that everyone's code compiled the same, ensured library compatibility, etc.

IDEs may not matter so much on small web apps, but one cannot extend that fact to all of software development.

Re:Green vs. Brown Programming Languages by kaba0 on Thursday April 22, 2021 @04:37PM (#26907879)
That’s a huge liability/red flag. Builds should be deterministic, and reproducible. An IDE should have no say in that, that’s what build tools are for. That’s just all around terrible. Also, a sane IDE should be able to make use of the config files of the build tool.
Re:Green vs. Brown Programming Languages by mywittyname on Friday April 23, 2021 @03:44PM (#26918412)
I mean, if you say so. Said project has been around for 25+ years, survived a dozen acquisitions, is actively developed by 1000s of developers all over the globe, and has revenues in the $100s of millions. So clearly they are doing something right.

Personally, I loved never fucking around with IDEs.

Re:Green vs. Brown Programming Languages by kaba0 on Friday April 23, 2021 @04:56PM (#26919120)
Just because one aspect is questionable, doesn’t necessarily effect all the other good ones! So good luck with the project!
Re:Green vs. Brown Programming Languages by ShroudedNight on Thursday April 22, 2021 @08:27PM (#26909725)
My experience with build systems tied to specific IDEs is that they 'foster' homogeneity through fear and ignorance of the build process. Any changes along that axis become impossible in practice. On the other hand, text-based build description languages under version control provided a path to understanding and mastery. Even autotools has been better than weird bespoke IDE build integrations.

Also in my experience, "compatibility" is best enforced by API/ABI/FFI contracts, and commitments to support released versions for a given length of time.

Re:Green vs. Brown Programming Languages by tonyedgecombe on Friday April 23, 2021 @06:16AM (#26913051)
>The IDE (Visual Studio) was customized by another department then was pushed out to developer machines.

Even though that may make sense in some large environments it's not something I could put up with. I'd never take a job somewhere like that.

Re:Green vs. Brown Programming Languages by maynman on Thursday April 22, 2021 @11:10AM (#26903624)
If you're using Java, definitely give IntelliJ a try. I think it makes writing Java a pretty enjoyable experience.
Re:Green vs. Brown Programming Languages by offtop5 on Thursday April 22, 2021 @12:54PM (#26904983)
Agreed, I like IntelliJ. I said since I never know if a Java shop will make me use eclipse again, I tend to shy away from java. Of course I do have a price, if we're doing 200k up I'll put up with Eclipse
Re:Green vs. Brown Programming Languages by o_nate on Thursday April 22, 2021 @01:11PM (#26905179)
I agree. One reason I think people hate VBA so much is because the tooling is abysmal. If you've ever had to work with VBA code in the Excel code editor, you'll understand what I'm talking about. Ironically, both that and Visual Studio are made by the same company.
Re:Green vs. Brown Programming Languages by xxs on Thursday April 22, 2021 @10:39AM (#26903268)
>they made me use Eclipse with Java.

I mean I do use them quite voluntarily. That's the thing that annoy(ed) so much.

Re:Green vs. Brown Programming Languages by offtop5 on Thursday April 22, 2021 @12:54PM (#26904993)
Doesn't Eclipse feel a bit dated to you ?

Like they wrote the UI in 1999 and never updated it

Re:Green vs. Brown Programming Languages by xxs on Thursday April 22, 2021 @01:26PM (#26905359)
> Doesn't Eclipse feel a bit dated to you ?

I wonder what you'd say about the command line. The interface has not changed for like 40y+.

I 1st started using eclipse in 2006 or so, while writing some plugins (post compilation byte code editing) in 2003-2004. The UI has been updated somewhat since, not drastically, though. I've got pretty decent understanding how it works internally and what functionality is available.

Truth be told, updating the UI just to look modern might find some fans but to many it'd make it less usable for no good reason. For instance I don't want my hand drill to feature an OLED display, coupled with bluetooth just b/c it's cool and dandy.

Re:Green vs. Brown Programming Languages by JoshTriplett on Thursday April 22, 2021 @11:12AM (#26903641)
I've maintained large Python codebases, and I found it somewhat painful, especially when finding and fixing issues. I got tired of discovering issues at runtime that any compiled language would have found at compile time.

I still enjoy Python, but I don't consider it an exception to any general principles here.

Re:Green vs. Brown Programming Languages by bob1029 on Thursday April 22, 2021 @05:17PM (#26908324)
As a C# zealot, I would have a hard time providing an unbiased take, but its probably the "whole picture" ideal that makes developers take to it so strongly. When working with C# (aka some specific flavor of .NET), you are embraced with the following:

  - Visual Studio, probably the best IDE ever created.
  - With .NET (Core 3.1~6), code that usually "just works" x-platform.
  - Mostly-workable application development ecosystem as of .NET 5. 
  - Ecosystem of first-class CI/CD/Cloud/et. al. products & features.
  - World-class debugging experience, even across the network.
  - Stable versioning scheme with dependable LTS options.
  - Confidently run mission-critical loads on latest Windows Server platforms.
  - Very large library of high quality 3rd party dependencies (nugets).
  - Trivial to configure own nuget server for internal/private use.
  - Virtually everything you need is a first class dependency.
  - LINQ
  - Very good GC, especially when configured and used correctly.
  - Strongly-typed with very expressive language features as of C#8.
  - Fast compilation times, even on monster projects.
  - Principally maintained by largest software company on earth
  - Maintained by the open source community as well
  - Extreme performance (.NET Core optimizations, Kestrel, Disruptor, et. al.)
  - Extreme productivity (VS tooling, Self-Contained Deployments, Blazor, etc.)
Re:Green vs. Brown Programming Languages by xxs on Thursday April 22, 2021 @10:32AM (#26903184)
One of the main issues with stackoverflow is (has been): very few seasoned developers ask questions and even they do, it'd be likely to be unanswered. That skews its user base very heavily towards the younger people.
Re:Green vs. Brown Programming Languages by calvinmorrison on Thursday April 22, 2021 @10:47AM (#26903364)
Or different styles of learning! Some languages are really good in situ for debugging and solving problems, some are more opaque and require looking things up.

Also 'brown' languages being older and more established, there are plenty of older engineers who RTFM first, look at man pages first, etc then ask questions.

Re:Green vs. Brown Programming Languages by jarpadat on Thursday April 22, 2021 @11:10AM (#26903621)
It’s an interesting conjecture but I don’t think the data makes a compelling case. When you compare 2 points in time you have a lot of alternative hypotheses, like the 2016 languages just being historically unpopular for some reason. A better support is a cohort analysis where we see languages start green/liked and transition to brown/disliked over their lifecycle.

The real difficulty though, is addressing the alternative hypothesis that language design improves over time. This is obviously the view of language designers or else they wouldn’t make languages.

In that case, you would see the languages turn brown in your analysis, and even in more robust cohort analysis. But it would not be because of a honeymoon bias, it would be because you don’t want to use a horse-drawn carriage if you could use an automobile.

Re:Green vs. Brown Programming Languages by visarga on Thursday April 22, 2021 @04:20PM (#26907671)
Different decades have different applications, hardware and trade-offs. So popular languages could be just overfit to the current epoch. It doesn't mean there is always progress, could be just change.
Re:Green vs. Brown Programming Languages by vaughandroid on Thursday April 22, 2021 @11:29AM (#26903856)
Thank you for sharing. Intuitively I think your point makes a lot of sense. I don't think there's really enough data to really prove it, but I liked your approach.

I do think there's other stuff going on as well though. For example, newer languages are often designed to address perceived problems with existing popular languages. I'm a long-time Kotlin and Java developer, and Kotlin feels a lot like Java 2.0 - it specifically addresses a number of pain points people were experiencing with Java. So of course I'd rather be working with Kotlin, and going back to Java can feel like a drag.

Re:Green vs. Brown Programming Languages by mnd999 on Thursday April 22, 2021 @10:36AM (#26903230)
Seems there's a lot of hate for Scala and Haskell regardless of the project? What is it with functional?
Re:Green vs. Brown Programming Languages by shadowgovt on Thursday April 22, 2021 @10:47AM (#26903370)
I've never seen someone succeed at giving an objective explanation. Anecdotally and subjectively, functional programming is a different type of thinking about a problem... Instead of breaking it down into stages, I'm almost breaking it down into a graph and figuring out how the nodes must connect. LISP is also like this.

I wouldn't be surprised if cognitive modeling shows that graph-manipulation engages different chunks of one's brain than step-by-step procedural description, but I do not know.

Re:Green vs. Brown Programming Languages by microtherion on Thursday April 22, 2021 @11:40AM (#26904008)
There might be a particularly strong Green/Brown delineation with those, with programmers loving to write code in them, but disliking to maintain other people's code.
Re:Green vs. Brown Programming Languages by notsureaboutpg on Thursday April 22, 2021 @10:38AM (#26903252)
Scala and Haskell are also in the most loved languages, why do you think there's a lot of hate for them?
Re:Green vs. Brown Programming Languages by erik_seaberg on Thursday April 22, 2021 @02:54PM (#26906648)
I think some people feel productive writing lots of code, while others feel productive learning ways to avoid writing lots of code.
Re:Green vs. Brown Programming Languages by achtung82 on Thursday April 22, 2021 @10:31AM (#26903179)
Also with C# and .Net there has been a lot of changes since .Net Core released 2016. Doesn't change that there is a lot of older legacy code so im not entirely sure.
Re:Green vs. Brown Programming Languages by decafninja on Thursday April 22, 2021 @10:46AM (#26903359)
I loved C# as a language. I'm not fond of most companies that use C# though.
Re:Green vs. Brown Programming Languages by mapmap on Thursday April 22, 2021 @11:26AM (#26903817)
Could you elaborate on the second statement? Why is that?
Re:Green vs. Brown Programming Languages by decafninja on Thursday April 22, 2021 @11:43AM (#26904039)
Most companies that use C# and .NET tend to be big old school enterprise orgs where tech is an unrespected cost center.

Java is arguably used in many of the same companies, but also seems much widespread across a more diverse range of different types of companies.