10 ms·
This is not a surprise - the Windows ecosystem simply wasn't designed with software development in mind. Aha? What is C# and Visual Studio? Or .NET? Was Linux
by grx 9y ago
This is not a surprise - the Windows ecosystem simply wasn't designed with software development in mind.
Aha? What is C# and Visual Studio? Or .NET?
Was Linux designed for software development?
This article is so bad, I'm really getting mad over here. Stop publishing such crap, you feed a lot of people's resentment against all those hipster developers who don't want to learn by RTFM, but want to have handled everything.
Articles like this are a real hurdle on the way towards making Linux and programming in general more approachable to non-techies. Just stop, please.
- ajross 9y ago> Was Linux designed for software development? Linux was designed to emulate Unix and run the pre-existing Unix-like userspace from GNU. And absolutely yes, Unix was "designed" for software development. That's exactly what it was in its early days: a hacker playground for the geeks at Bell Labs to try new ways of doing things. And windows wasn't. Early windows development (for years after it became popular) was done at a DOS command line. Eventually Visual C++ because the dominant product, and certainly you can't say it wasn't innovative. But it remained a separate product. "Windows" wasn't for development. And we still suffer from this in, say, the way windows basics (like the standard C runtime!) typically need to be shipped per-app and are only vaguely compatible across OS and toolchain changes.
- vvanders 9y ago> Early windows development (for years after it became popular) was done at a DOS command line ... I could just as easily flip this and claim that Linux development is all backwards because it's still done on the command line. Given Microsoft's commitment to tooling, backwards compatibility and extensive documentation I think it's pretty lame to try and paint windows as not targeted towards developers. The difference is that windows has actual users, as opposed to the eternal horizon of "the year of linux on the desktop".
- deleted 9y ago[deleted]
- ajross 9y agoThe fact that you think a DOS command line c. 1993 and a Unix one (from, say, 1984 even!) are comparable basically ends this argument, you realize, right?
- vvanders 9y agoYup you're right, the extensive argument you provided has completely convinced me of my errors. /s The point I was making was that they're just different systems and approach things in different ways. Trying to say one is more "developer focused" than the other is a useless metric(which we'll take forever trying to define what "developer focused" even means). One could make similar arguments about the Alto not having a command line, yet Smalltalk was incredibly powerful and focused at giving a top-tier development environment that still hasn't been match in some ways to this day.
- throwaway7645 9y agoI dunno. UNIX and thus Linux are all about pure user power. The shell is great and there are lots of tools available by default like Awk, Perl, Python, TCL, Sed, GCC, Vim, Emacs...etc. The entire OS isn't perfect, but is designed for people who know what they're doing. Compare that with CMD & Batch and it is Linux is like an SUV that can also fly and shoot lasers while Windows is like a moped. Of course I'm exaggerating a good bit, but even Powershell has a lot of issues and doesn't allow you to easily do what you can in Linux. In Linux everything is text and it's easy to pipe things around. In Windows it's all objects and frustration. I agree that Smalltalk on the Alto is pretty cool, but Windows is nothing like that besides having some OO stuff. Something I do all the time on Linux is "locate filename" and pipe that to "grep" to be more specific. On Windows, open up the search Window and pray you can narrow it down or wait a very long time. I use Windows and Linux at work. On Linux I feel like everything is designed to increase my productivity as are the tools at my disposal. On Windows, I'm always fighting the lack of good tools. Sure Visual Studio + .NET is pretty good if that is your thing, but I personally don't like having to open an IDE that uses that kind of resources if I essentially need to write a simple script. I've spent quite a bit of time with Powershell, but it simply isn't as productive as Linux due to the increased complexity. Sorry for the rant, but as i spend a lot of time with both OS, I have strong feelings on this.
- pjmlp 9y agoWhat?!? Are we talking about Windows 1.0 and 2.0 here? I was using Turbo Pascal and Turbo C++ quite nice IDEs on Windows 3.x. Windows has always been a popular development environment for the demoscene, and games developers. The only alternatives being Mac and Amiga, none of them UNIX friendly.
- ajross 9y agoBut... the point was that "windows" per se wasn't designed for software development. The fact that you had to buy an IDE from a separate supplier supports that point, it doesn't refute it. In fact, as pointed out, Microsoft's own development environment (and the one used to create windows itself and most of MS's windows apps) until 1993 was a DOS command line compiler and separate editor. No one is saying you couldn't develop "on windows" (obviously you could), but that's a rather different point than saying that windows was designed with developers' needs in mind (it wasn't).
- pjmlp 9y agoThen by that point of view no commercial OS is made for developers, including UNIX ones. It was the way that commercial UNIX vendors started selling their SDKs, with Sun being the first one, that made people actually contribute to gcc.
- Xophmeister 9y agoBeing either a commercial product or open source doesn’t preclude Unix from being designed for development.
- pjmlp 9y agoOnly if by development one only cares about textual command line applications and daemons, because everything else is also third party.
- monochromatic 9y ago"Linux" per se is just a kernel. It doesn't exactly have gcc built in.
- revelation 9y agoYeah, software development on Unix was so natural and enjoyable, even today half the time building a Linux library or app is typically spent in byzantine shell scripts trying to determine which particular occult incantation of incompatible or broken Unix you are not running and throwing various test programs at your compiler that last made sense in 1995. The true essence of delightful and plain right software development must be over in OpenBSD land, where they run the one and only gcc 4.2.1
- anthk 9y ago>The true essence of delightful and plain right software development must be over in OpenBSD land, where they run the one and only gcc 4.2.1 Clang actually.
- revelation 9y agoThat's what it says in the marketing material, then you look inside and there it is, the ancient gcc the guys with the claim on most free license can't update because of it's .. licensing. If it was only an exercise in self-flagellation, sure whatever, but no, their tears flow upstream when stuff 99% of the population uses on Linux inevitably breaks with their bastardized gcc. (This is very obvious if you consider that no, they don't have an LLVM backend for the alpha)
- hackits 9y agoI tend to fall into I use what-ever gets the job done. Though most of the times I did hear from high Microsoft Programmers they first started with Unix/Linux and super productive in that environment. Though when it came to shipping product and getting customers to buy it all the users where on Microsoft/Apple at the time. Tending to wanting to survive and buy `nice` things they all had to learn Microsoft/Visual Studio to ship product to make monies. Not wanting to fall into a debate about Microsoft/Linux/Apple I've tended to find that Microsoft with all its problems do have very helpful and useful technical support when you run into a major door stop when shipping a product. What they do for backwards compatibility is amazing and still something I would like in the Linux world. Here I go again.... One of my pet peves with Linux/Unix world is `Still` after all these years their asynchronous IO is still crap compared to Free BSD. Something that after all these years its still amazing that it still isn't fixed. The whole container/virtual machine is required in the Linux world because `Some` essential tool you need is no longer works with your specific version of Linux. To make matters worse I've seen 2-3 virtual machines in enterprise environments that are just simply there to run old software that it vital for the business.
- rrhd 9y ago> Early windows development (for years after it became popular) was done at a DOS command line. 2 decades and a completely different kernel ago, sure.
- jackmott 9y agothose are not the operating system.
- agumonkey 9y agoIt's a tiny bit true. Windows was a platform to make Microsoft and other sell software.
- empath75 9y agoLinux will never be more approachable to non-techies. It’s an operating designed by and for developers. It’s brilliant at that. The push to make it palatable for everyone was always political and centered around its free software license, not about any technical suitability for it.
- Impossible 9y agoThe answer really depends on what kind of software development you're doing. So much of the software development that most recent, modern, web (or ML\data-science) focused developers do only works in a Unix environment that it might as well be impossible (even though things have improved greatly) to make software in Windows. As this kind of software development encompasses all work that happens at SV tech startups and most of the work at most big tech companies, most developers will not be exposed to other workflows. Game development, real-time graphics (most PC demos are Windows only), enterprise desktop software development, and I imagine a few other niches, are generally only possible or much better on Windows. For example good luck building and running a console game on Mac OS X or even Linux, even if the tooling and the OS running on the console is sometimes Unix based (Clang and BSD in the case of PS4 for example).
- geezerjay 9y ago> Aha? What is C# and Visual Studio? Or .NET? How many GB of pure crap are you forced to install on any windows system to be able to tweak, let alone develop, any software project developed with C#? Even you acknowledged that you need to install a full blown IDE, such as the monstrocity that is MS Visual Studio, to do any software development in Windows. In unix-like OSs, such as any linux distribution, all you have to do is pop open a basic text editor and compile/run the program.
- therealdrag0 9y agoAnd then there's Mac's XCode. A many gigabyte artifact that you have to install for many non-IDE related activities -_-
- lostmsu 9y agoI think MSBuild was part of all .NET Framework distributions. Even if it was not, you could download SDK without VS. Its just that people use VS because they like it over a clueless text editor.