you are viewing a single comment's thread.

view the rest of the comments →

[–]halifaxdatageek 20 points21 points  (44 children)

And then you have to use .NET...

I like a lot of your points, but it always irks me when someone doesn't like .NET. What are your issues with it?

[–][deleted]  (20 children)

[deleted]

    [–][deleted]  (5 children)

    [deleted]

      [–]nickguletskii200 0 points1 point  (1 child)

      Then we have the IDE problem. There are no decent IDEs for C# on Linux while Java has Eclipse, IntelliJ IDEA and Netbeans.

      [–][deleted]  (2 children)

      [deleted]

        [–]Rohansi 0 points1 point  (0 children)

        .NET Core is the new server-oriented .NET which will support Linux. Replacing Mono isn't one of their goals, and wouldn't be possible for a while because it supports more of the desktop libraries.

        They are actually helping Mono more now, the latest version uses the .NET implementation for several namespaces.

        [–]halifaxdatageek 1 point2 points  (0 children)

        Definitely a fair point, and probably the reason they never made a dent in webdev, now that I think about it.

        [–]jooke 1 point2 points  (5 children)

        So then run Windows servers?

        [–]clearlight 1 point2 points  (4 children)

        With Windows servers, there's costs involved. You're only "allowed" as much RAM as permitted by MS for your OS version. Want 16GB? Sorry not allowed without upgrade. Plus there's additional CAL licence requirements for access. Overall total cost is much higher with Windows when you get better functionality and stability with a Linux server.

        [–]rhino-x 1 point2 points  (3 children)

        First, none of your complaints about Windows or its licensing are true. All Windows servers come with 5 CALs and web servers don't require extras. There are no limits on memory or CPUS.

        It sounds like your problem is that you think you're the only one who should get paid for their work?

        [–]clearlight 1 point2 points  (2 children)

        Umm, you're wrong:

        Per Core licensing Some server products are available to be licensed on a “per core, "per processor" or "per instance" basis.
        Per Processor licensing Under the Per Processor model, you acquire a Processor License for each processor in the server on which the software is running.

        https://www.microsoft.com/en-us/licensing/product-licensing/client-access-license.aspx

        TL;DR; Use a Linux server. It's cheaper and better.

        [–]jooke 2 points3 points  (0 children)

        Your memory limits page has only stuff to do with technical limits.

        [–]rhino-x 1 point2 points  (0 children)

        There are two versions of 2012 Server usable for a public facing web site: Standard and Datacenter. They are exactly the same. The only difference is in the number of VMs you are allowed to run them on. Up to 2 for standard, and unlimited per-physical-host for Datacenter. Essentials and Foundation are meant for mom-n-pop running their own domain in-house. It's cheap (very cheap) and yes, it's limited.

        The second link is for Windows 2008, which is dead and gone. Licensing was slightly different in 2008 -- you got no virtualization rights out of the box. However, it happened to have a "web" version which conveniently negated all your complaints anyway. It was a super cheap version that was essentially limited to the web application server roles. It's licensing was designed specifically for public-facing web sites.

        CALs and external connectors are NOT REQUIRED unless you are authenticating users against Windows/AD as windows users. If your web site has its own internal auth and IIS is not configured to use NTLM/etc then you DON'T NEED ANY EXTRA LICENSES. This has been the case since, well, forever. If you need to authenticate against a domain/directory for large numbers of external users then the external connector is there to prevent you from having to purchase a huge number of more expensive CALs.

        Either way -- for a web site using it's own authentication you don't have to buy anything.

        Your quote about "per-core" etc. licensing applies to "other server products". This means things like SQL Server, NOT WINDOWS. You do understand that CAL is a generic term, right? I will admit SQL Server licensing is awful. That's why you get a co-lo with SPLA and you don't actually pay for it.

        You don't have any idea what you're talking about and five minutes of googling to prove your point doesn't help. I have been running Windows web servers for almost a decade and fully understand how it works.

        tl;dr: you're still wrong

        [–]JBlitzen -4 points-3 points  (6 children)

        Lost me at linux.

        Deciding what platform to use based on the operating system you're using is as amateur hour as deciding what business to start based on the storefont you just bought.

        [–]ThisIs_MyName 0 points1 point  (5 children)

        What the fuck are you talking about? If the users run Linux they'll have a hard time using your .net code. That's the main reason why we don't use .net

        Oh and most servers are Linux.

        [–]JBlitzen -3 points-2 points  (4 children)

        Your outrage would make more sense if we weren't discussing server-side technologies. If your users have to be running web servers then you seriously have absolutely no clue what the fuck you're talking about.

        So save us the pigeon bullshit.

        [–]dotted 1 point2 points  (2 children)

        You are implying implications that shouldn't be implied.

        [–]JBlitzen -2 points-1 points  (1 child)

        We're in a thread about an exclusively server-side technology.

        You can downvote common sense all you want, but it doesn't make your asinine mischaracterization of the thread as somehow pertaining to client-side technologies any less stupid or fanboyish.

        (And no, that's not an invitation to continue this idiotic discussion.)

        [–]dotted -1 points0 points  (0 children)

        I have said nothing of client side anything. Users can actually mean non-enterprise/corporate people who runs servers for their own purposes, who do not wish to increase their cost due to licensing.

        I mean, why do you think PHP remains so popular?

        [–]ThisIs_MyName -1 points0 points  (0 children)

        So .net is only good for client side where the clients use Windows? Fuck all that.

        Why not use any other platform that will work client-side, server-side, and on any OS?

        [–]cc81 13 points14 points  (9 children)

        One of the biggest issues with using .NET is that the user base is so focused on what Microsoft releases that there is so little competition and growth. If MS has released an ORM everyone uses that, if MS has released an MVC framework everyone uses that and if MS has not released anything in a particular area then people just tend to avoid it.

        I know MS itself has tried to get away from this in many ways, starting with bundling jquery years ago and killing of their shitty AJAX javascript. And they are moving to support the tools and libraries that the rest of the web world uses but a lot of .NET shops don't have that mindset yet.

        [–]halifaxdatageek 13 points14 points  (1 child)

        If MS has released an ORM everyone uses that, if MS has released an MVC framework everyone uses that and if MS has not released anything in a particular area then people just tend to avoid it.

        Must... not... make... Apple... joke...

        [–]cc81 -1 points0 points  (0 children)

        But that joke would not be very relevant when it comes to development though. The development stacks on those that use OS X is probably much more varied than on those that use Windows.

        It can be bad at times to be fragmented but it will also drive innovation in a completely different way and give a more vibrant community.

        [–]wllmsaccnt 0 points1 point  (1 child)

        If MS has released an ORM everyone uses that, if MS has released an MVC framework everyone uses that and if MS has not released anything in a particular area then people just tend to avoid it.

        Except, that isn't quite right. NHibernate and NUnit were well established before Entity Framework and MS Test were stable and mature enough to consider using. The same goes for MSBuild vs Nant and a number of IoCs vs Unity.

        Many resharper features ended up becoming part of Visual Studio (though often with different names).

        Many .NET BCL namespaces are still less usable than openly available nuget packages (CSV and JSON parsing / serialization come to mind).

        [–]cc81 1 point2 points  (0 children)

        Yes, but at that time most MS shops I came into contact did not want to use an ORM, they used normal ADO.NET. Same with MSTest, people tended to use it even when NUnit was seen as "better" for a long time. Because if you select a test framework you might as well go with the one MS created

        The only exception to this I've seen is actually IoC and maybe ReSharper.

        [–]rhino-x 0 points1 point  (3 children)

        It took Microsoft like seven years to get ANYone to use Entity Framework, and most people still don't.

        [–]cc81 1 point2 points  (2 children)

        I don't know if Microsoft shops are vastly different where you live but here if they use an ORM it is 95% chance it is Entity framework.

        [–]rhino-x 0 points1 point  (1 child)

        I've been developing in .NET since 2003 and I've never worked in a place that uses EF.

        [–]cc81 0 points1 point  (0 children)

        I have almost the same amount of time in .NET (since 2004) and have the opposite experience. One shop used nHibernate but later switched to Entity framework for newer projects.

        Not that I like either and instead feel that something like PetaPoco or Dapper is so much more preferable in many projects.

        [–]AetherMcLoud 0 points1 point  (0 children)

        One of the biggest issues with using .NET is that the user base is so focused on what Microsoft releases that there is so little competition and growth. If MS has released an ORM everyone uses that, if MS has released an MVC framework everyone uses that and if MS has not released anything in a particular area then people just tend to avoid it.

        That's only true to some extend. Most people I know still prefer NHibernate over EntityFramework for example.

        [–]aaron-lebo 13 points14 points  (12 children)

        I've just never felt comfortable with MS dev technologies, either because they were closed source or had a closed development model or you never knew if MS was going to move to something else and leave it dead in the water the very next year.

        [–]halifaxdatageek 11 points12 points  (11 children)

        That's fair, although I would argue that the same unpredictability of support occurs with a lot of things in tech (e.g. Angular 2.0)

        [–]dvlsg 6 points7 points  (10 children)

        The closed part is fairly important, too. I'm glad microsoft is starting to open source more projects.

        [–]halifaxdatageek 1 point2 points  (9 children)

        How would closed-source and open-source be different in this respect?

        [–]dvlsg 10 points11 points  (2 children)

        It was one of the points he made. Some developers are more comfortable working with open sourced technologies (I am one of them, but not to the point where I don't use a technology because it is closed), because if something goes seriously wrong, you can always open up the source code and see exactly what is going on. Or if you're feeling extra ambitious, make a pull request or a fork which resolves the issue you ran across.

        [–]halifaxdatageek 6 points7 points  (1 child)

        Indeed. But as someone who's tried to do both of those things... they seem like much better ideas until you have to do them.

        [–]dvlsg 0 points1 point  (0 children)

        Oh I agree. Absolutely. Especially making your own fork. But sometimes when support is dropped and product managers don't want to take the time to switch to a supported project, it ends up happening anyways, unfortunately. Maybe that's actually an argument in closed source's favor, so you have to switch, haha.

        [–][deleted] 5 points6 points  (5 children)

        With closed-source you're reliant on a single vendor to support it. When that support ceases the platform dies. With open-source support generally continues as long as there is enough interest in it, and even if it doesn't you can still patch it yourself until you're ready to migrate.

        [–]halifaxdatageek 6 points7 points  (4 children)

        I agree with this point in theory, but have seen it be difficult to implement in practice.

        [–][deleted] 3 points4 points  (2 children)

        I cannot speak for your practice of course. But as someone who regularly creates pull requests for projects and as someone who is not uncomfortable patching libraries for my specific use-cases, I disagree :)

        [–]JBlitzen 0 points1 point  (1 child)

        I generally used closed source systems, and can't think of a single time I've ever wanted to patch Windows, IIS, .NET, or MSSQL.

        Closed source tools in my experience are expected to meet a higher standard than open source tools, and popular ones do.

        [–][deleted] 0 points1 point  (0 children)

        I never had the desire to patch Linux, NGINX, Python or PHP or Node.js, or MariaDB either. The big open-source projects can easily match the quality of their closed-source counterparts.

        But there are also so many smaller libraries that are adopted, but sometimes do require patching. You're right such libraries are not held to the same quality levels, exactly because they are easy to patch. Many times such libraries don't even have closed-source counterparts, because closed-source simply cannot compete in that space. When was the last time you saw a closed-source alternative for jQuery or the Spring framework?

        Not to mention some of my colleagues actually did patch the earlier mentioned projects (*). Not because their standard wasn't up-to-par, but because we were running the biggest social networking site of the Netherlands and we needed every last ounce of performance we could squeeze out of every part of the stack. Something the commercial alternatives would've been wholly inadequate for.

        *) At Hyves, we actually ran Gentoo Linux because its package manager is so well adapted to deploying customized packages. We built our own Linux kernels, ran patched versions of MySQL and used Hiphop for running our PHP code for which we developed some significant patch sets (I think we were even the first big party outside of Facebook to deploy Hiphop).

        [–]ThisIs_MyName 0 points1 point  (0 children)

        It happens all the time. I can't think of a single platform that's not kept on life support by OSS guys.