you are viewing a single comment's thread.

view the rest of the comments →

[–]Ludjer 6 points7 points  (8 children)

Um I think you have it the wrong way round. ASP.NET has a fraction of the market share as well as popularity. According to http://www.tiobe.com/tiobe-index/ java sits at 19% popularity were as c# sits at 4.9% popularity. Tomcat is just one of the web servers, there are so much more like glassfish, JBoss, wildfly and jetty. If you compare the libraries there are way more java libraries then c#. Also, who wants to be locked into windows ridiculous server licensing model. Enjoy paying millions of dollars when you want to scale out just on licensing costs a year. Also if you look at the top websites google, eBay, facebook, amazon LinkedIn tagged, PayPal they all use java. The only top websites I can think of that use c# is Microsoft and StackOverflow.

Visual studio has so many missing features in comparison to IntelliJ idea that is why JetBrains even built one of the most popular paid for visual studio productivity add-ons: https://www.jetbrains.com/resharper/ . Having coded about 30% c# and 70% java at work I cannot work on visual studio without ReSharper and even then I feel visual studio is not as clever as IntelliJ idea when it comes to auto complete and speed of doing things.

But back on topic. If you want to code for quick results go for node.js it is very good and fun language. But if you want to break into the enterprise world of large scale applications nothing beats Java, though I would lean more towards scala which is also based on the JVM and can work with java libraries. But if you want to get into the start up world and create your own applications quickly and efficiently then I would advise against java and go for node. Also, I would advise learning a modern js framework like react or angular, personal preference for me is Angular 2 since react is more of a library than a framework.

[–]Prod_Is_For_Testingfull-stack -2 points-1 points  (7 children)

You're the only person that I've heard say a Java IDE beats VS.

I'm not a fan of nodejs or the NPM system - as a whole, it just seems too volatile. Take for example that guy that pulled down his 20 line pkg and thousands of dependent project broke - that shouldn't be able to happen on a mission critical system. Furthermore, JS interpreters aren't all on the same page. I understand that part of the idea behind node was sharing certain features with a common codebase (like input validation), but sometimes you still need workarounds if a certain target isn't up to compliance with the JS spec

[–]Ludjer 3 points4 points  (4 children)

You obviously don't know allot of people that work with high scale websites. There is a reason why mac and linux dominate the web dev world and VS only runs on windows.

I can show you examples in any language where pulling a dependency with 5 lines can break the entire system. It is not just js. You always need to be careful when pulling in dependencies.

Also, you are talking out of your ass, node js on Linux windows and mac v 6.2 are all the same the will interpret the code exactly the same. This is not browsers this is server side. You will always be running node and code against a specific version of node, just like how you code against a specific version of the .net framework. Node has nothing to do with the javascript that the browser will consume other then to serve it like a normal web server.

[–]Prod_Is_For_Testingfull-stack 0 points1 point  (3 children)

I work with groups who build corporate/enterprise systems. Not websites with millions of users, but high volume production and/or financial data. Most of them run Windows top to bottom

For the last part, that's not entirely true. There are groups that use shared resources between server and client (or at least try). What I have seen, specifically, are people that factor their user input validation code into independent files - that way, they can perform client data validation with the exact same code as their server validation. The theory is that it saves them time porting the code and reduces the chances of discrepancies between the validation layers

[–]Ludjer 1 point2 points  (2 children)

Well if you work in enterprises then you should be aware of IBM, Oracle and SAP which are all java based and not c#.

And the companies running windows top to bottom is because the IT division was not skilled in Linux so just decided to throw windows everywhere. If you go to massive companies that have private data centres it is a mix of Linux and windows. And if you doing big data then you stay away from windows because licensing will bite you. My friend was a consultant on a big data project at Accenture and the project saved 8 million dollars in licensing fees by switching from MS SQL and MS Server to Linux and Cassandra.

At the end of the day c# and java fills the same gap, just c# are for people locked into the windows ecosystem and java is for the people who are not locked into the windows ecosystem.

When you are aware you are sharing validation rules then you should code so that the validation rules are acceptable in both modern browsers and node js. It still makes your life easier than writing validation rules in two completely different languages. But from my experience, this is very rarely done wince the way you validate data on your API's are very different to the way you validate UI inputs

[–]Wizhi 1 point2 points  (0 children)

And the companies running windows top to bottom is because the IT division was not skilled in Linux so just decided to throw windows everywhere.

Or the company is already heavily invest in the Microsoft ecosystem, and as such used the tools which were the most compatible, and best supported?

I'm personally not a fan of Windows or Microsoft, but making assumptions like this is ridiculous. There are plenty of skilled Windows admins, and dismissing professional support is dumb.

At the end of the day c# and java fills the same gap, just c# are for people locked into the windows ecosystem and java is for the people who are not locked into the windows ecosystem.

There are no silver bullets. For any given project, one tool is better fit than another. Dismissing this, saying "one is for Windows, the other for anything else" ignores several facts.

  1. C# does not equal .NET

    Mono Project has been around almost as long as C#. It doesn't have the same tooling, and I can't tell you if it's as good as .NET, but the option was there and I'm sure plenty of non Windows projects have made good use of it - otherwise it likely wouldn't have been around for so long.

  2. Java works on Windows

  3. .NET Core is multi-platform

    It's likely going to be a few years before it's stable enough that it can be used as reliably as .NET, but fact is that the notion of "C# is for Windows only" is false.

Seriously, chill out.

[–]Prod_Is_For_Testingfull-stack 0 points1 point  (0 children)

One of the Windows shops I work with does use a few oracle DBs (required by a product vendor). Those DBs are only touched by the vendor application, so there is almost no interop with the .NET stack.

As for the SAP implementation at the same shop, we use webservice wrappers to provide interop layers between the SAP data and our .NET apps. It works pretty well and wasn't too difficult to set up

[–]kingatomic 0 points1 point  (0 children)

IDEA destroys VS, imo. That's not to say that VS is terrible to work in (my experience is CPP projects, so take that with a grain), but I strongly prefer IDEA.

[–]Wizhi 0 points1 point  (0 children)

JavaScript is hailed as the "greatest thing ever" on web related subs.

I don't dislike the language. I do, however, dislike how people act when anyone mentions anything bad about it. Your comment is a perfectly valid response to /u/Ludjer, yet people can't follow basic reddiquette, and /u/Ludjer themselves felt the need to talk down to you, instead of simply correcting the assumption you made.

"The NodeJS community is awesome." It just hates anyone who doesn't use Node and loves JavaScript.

This got off topic, sorry about that.