1. 11

  2. 10

    You don’t need Visual Studio to develop C#. I’ve done fine with nothing but Vim and using Mono’s test ASP.NET server. For non-web stuff, you can easily write an extremely simple makefile instead. (It’s easier and the ecosystem revolves in Visual Studio though, to the exclusion and disdain of MonoDevelop and the commercial fork, Xamarin Studio. Everyone wants their VS.) And it’s still better than Java’s nesting of FQDNs as directories.

    Git works fine in VS. It’s easy to use. I haven’t done advanced operations, but for simple stuff it works great.

    For Mono, in the desktop world, they love P/Invoking into the native Windows libraries for holes in the BCL, especially in the GUI world, and most are apathetic Windows developers. However, the ecosystem is changing to embrace cross-platform web, mobile, and gaming engine use.

    1. 4

      *NIX guys on the other hand are typically familiar with multiple operating systems (Linux, Unix, OSX, Windows, etc.), the inner workings of an OS, various distributions (Debian- and Fedora-based), window managers (lowercase “w”), desktop managers, file systems, package management, compiling, recompiling, repackaging, command line “fu”, and the list goes on and on.

      I agree. Many Windows programmers also don’t know about endianness, UTF8, other varieties of line endings, uog wrx permissions, case insensitive file systems, mounting points that don’t start with a drive letter. It also cuts both ways though, some Linux programmers won’t know Win32 or .Net for example. I would aim to have a mixture of Windows and non-Windows programmers in any environment.

      Don’t get me started about line break differences. I can’t believe we’re still dealing with this kind of thing today. If the VS solution file had Linux line endings it wouldn’t load the solution by double clicking on it because the VS solution file parser couldn’t read it.

      You can set up git to work reasonably well with line endings across Windows, Mac and Linux. The biggest issue I had was working out the correct settings to use for the initial commits/pulls.

      1. 13

        Windows devs are less familiar with unix is true in general terms (it’s almost a tautology even), but…

        1. “Linux” programmers can make pretty pathetic unix devs, too. Endianness is a good example, actually. Plenty of other examples.

        2. I’ve encountered a few Windows devs who look down at Linux as a toy, though in terms of general attitudes, Linux devs seem to the group that’s prouder of their own snotty ignorance.

        3. Familiarity with both Debian and Fedora? Is that somehow a feature and not a bug? Most Windows devs I know are familiar with Windows 7 and Server 2008, but they don’t make a big deal of it.

        I agreed with much of the article, but that point rang a little false for me.

      2. 4

        I’m not aware of any non-Java JVM languages prior to the CLR,

        Kawa Scheme history says:

        One option we considered was compiling Scheme into Java bytecodes and executing them by a Java engine. The disadvantage would be that such a Scheme system would not co-exist with Guile (on the other hand, we had run into various technical and non-technical problems with Guile that led us to conclude that Guile would after all not be strategic to Cygnus). The advantage of a Java solution was leveraging off the tools and development being done in the Java “space”, plus that Java was more likely to be strategic long-term.

        The customer agreed to using Java, and I started active development June 1996. As a base, I used the Kawa Scheme interpreter written by R. Alexander Milowski. He needed an object-oriented Scheme interpreter to implement DSSSL [DSSSL], a Scheme-like environment for expressing style, formatting, and other processing of SGML [SGML] documents. DSSSL is an subset of “pure” Scheme with some extensions. Kawa 0.2 was a simple interpreter which was far from complete. It provided a useful starting point, but almost all of the original code has by now been re-written.

        Kawa 1.0 was released to our customer and “the Net” September 1996. Development has continued since then, at a less intense pace! The long-term goal is an object-oriented environment that harmoniously integrates Scheme, Java, XQuery, and other languages.

        The History of Tcl says:

        I joined Sun in May of 1994…The additional resources provided by Sun allowed us to make major improvements to Tcl and Tk…Jacob Levy and Laurent Demailly built a Tcl plugin, so that Tcl scripts can be evaluated in a Web browser, and we created Jacl and TclBlend, which allow Tcl and Java to work closely together.…During these years Tcl usage continued to explode. By the end of 1997 there were hundreds of thousands of Tcl developers.

        So we have Kawa in 1996, Jacl somewhere between 1994 and 1997, and the CLR in 2000.

        I feel like it’s often the case that developers on Microsoft platforms have no idea what’s going on in the outside world, which I guess is probably why they so often waste their time building things that turn out to be irrelevant. This aspect of the post reinforces that stereotype in my mind.

        On the other hand, the post also introduced me to a bunch of ideas I wasn’t familiar with; CQRS isn’t just CQS, and “event sourcing” is related to object prevalence, but maybe isn’t quite the same (I’m not sure yet) but in any case has clearly been highly developed in the .NET world and is worth some study.

        1. 2

          And JPython (now Jython) started in the late 90s.

          1. 1

            Right! Thanks! I should have thought of that, since I actually use Jython daily.

          2. 2

            Did you know about those before or did you look them up? I had no idea they existed either.

            1. 3

              I remember people wanting something better than Java on the JVM almost from the word “go”. And yet, here we are.

              1. 2

                Jacl was ahead of its time. I would expect *nix devs to know or guess there was something on the JVM in that space before .net, even if they couldn’t name a specific example.

                1. 1

                  I knew about those before. I saw people trying out Kawa in 1998 or so. A friend of mine tried to do a thesis on compiling Perl to JVM bytecode around that time, too.

                  1. 2

                    Oh, that’s cool. I just don’t think “knows about jacl” is a good bayesian predictor of windows dev vs unix dev. :)

                    1. 1

                      Well, as the article says, Windows programmers tend to be Windows-programmers, while Unix programmers tend to be non-hyphenated programmers, so “knows about X” for a wide variety of Xes is probably a good Bayesian predictor of that :)

              2. 3

                Yup, I agree with both the goods and the bads. At this point though I am forced to use it at work, I don’t use it anywhere else though.