19

!Rant

I'm falling in love with C#. So classy...

Languages are always girls to me, as the computers.

Comments
  • 2
    You mean objects?
  • 0
  • 2
    @maltedMilk I began with Pascal, Delphi, then VB, VBA, PHP, a little bit of Python and JS and now I am learning C#. I am loving it.

    About Java, I never used it, but I don't like it very much. I don't even know why as I really do not known how to use it. It's what holds me to develop Android apps.
  • 1
    I dunno, from my perspective c# is what happens when M$ won't comply with standards. I am cpp dev, and I see on each cpp release there is less and less things that are covered as they should be.
    Also won't work on anything besides windows so it's half useless...
  • 0
    @esavier C# is multi platform now. You have Visual studio on Mac.
  • 0
    @esavier Sure. It's not like Windows dominates the desktop PC market, and it's not like a shit ton of enterprise software's being developed on. NET. Btw, it's been multiplatform for almost 2 years already.
  • 2
    @brunofontes

    Apps are not all written in Java anymore. i.e. for C# there's that thing called Xamarin. You can write Apps for Android, Windows Phones and iPhones with that tool. :)
  • 2
    Well it's a beautiful language. It has almost everything you need:
    Dynamic objects,
    Nice generics,
    Operator overloading,
    Nice getters/setters,
    Nice clean handling of disposable objects using `with`
    Features like extension methods and attributes and more...

    All of it while being strongly typed, quite flexible and fast. It's only ~20% slower than similar code in Java and uses up around 10% more memory. I'd say it's not a huge trade-off, when you think that Java:

    1. Needs specific specifications of throwable exceptions in methods
    2. Doesn't use the subscript operator for anything else than arrays (which is angering, with myList.get(i) and myMap.put(key, value))
    3. Stupid, stupid incredibly stupid difference between String and string, and the rest of the basic types as well.
    All of which result in a dreadful developing experience and very verbose unreadable code.
  • 1
    @codedoge
    If something's on Mac is it multiplatform ? I am talking normal systems, unix/posix systems, where only handful have decently working mono framework. For most architects handfull is far too less to actually choose that solution.
    20% slower than Java? Aren't Java already 20% slower than C/C++? I worked on the market almost 10 years, for different contractors, and noone who was talking performance mentioned C# let alone Java in the same day. BTW Scala right now has better days than java. Also no embedded systems are supported. Prove me wrong but it seems c# is M$'s autistic child people choose because it's easy and requires far less knowledge than other languages.
    @apisarenco
    I understand maps(dicts) but lists accessed by index? What the actual fuck?! How is that even implemented?
  • 1
    @esavier sure, Java is slower than C++. And C++ is slower than assembler. And Assembler is slower than FPGA. Should we all switch to FPGA then?

    The question is whether you can create value fast, and whether it's scalable. And it is.
  • 1
    @esavier "Prove me wrong but it seems c# is M$'s autistic child" -

    You can't be more wrong.
    The fact is that you can develop fast and robust software that you can scale without having to sell your life. And it's multiplatform. I developed a service on OSX, tested on Linux (had to switch laptops), deployed to Windows, without having to write system-specific code. It got the job done, and it did it fast.

    And what do you mean by "embedded systems"? You can use C# to develop IoT. Does it work on Symbian? No, it does not. And nobody cares.

    What part of accessing a list with an index is bewildering to you?
  • 1
    @datmaddin I am going to take a look on that today yet! Thanks!
  • 0
    @apisarenco
    Ok lol,
    Fpga is not quite a cpu, but you can develop firmware in C/C++, can you in c# ? Nope...
    Is c slower than assembler? Not really, since c actually produces assembly output, is c#? Nope...
    You can not program electronics with c#, c# have this same problem as java, needs runtime environment. And simple OS Which is written in c in most cases. Can you write OS in c#? I bet not...
    Fast development? Cool if I would want fast development I would use python or even bash for example. It would cost less to develop, but costs of servers would increase since I need more power to run same amount of features. Except it is not safe, secure and performance sucks.
    Switching platforms is not an argument, I do it all the times, this is normal for c.
    C/C++ is powering jet fighters, GPS, aerospace, OS's, drivers, automotive life support, research facilities, power plants and shitload of things c# won't and never will. Guess why?
  • 3
    @esavier "nope" - oh YES!
    https://github.com/CosmosOS/Cosmos/...
    But how often do you even need that?
    You can program boards with C#, which can control literally anything you want to control.

    Switching platforms IS an argument. it is required that you write more code, and as such, spend a lot more time, and waste money.

    Look dude, you obviously have some holy war going on against C#. You fail to understand very simple concepts like trade-offs. You know why no large complex web app is ever built on C++? Because it takes ages to do so, and in the end it's full of memory leaks. There is a certain balance, where going for more performance is absolutely not lucrative, since you gain nothing, and spend a lot.

    Ease off on fanaticism. If any language is a good trade-off of performance, extensibility and flexibility, that language is a good language.
  • 1
    @esavier Dude, just... Check out the available systems https://microsoft.com/net/core/...
  • 1
    @esavier @esavier It looks like you last read something about .NET 5 years ago. If we don't count Mono which is used by Xamarin and Unity3d which run on a shit-ton of platforms and are used in many real world apps and games, Microsoft provides open source implementation (.NET Core) for Windows, MacOS, Red Hat, Ubuntu, Mint, Debian, Fedora, CentOS, so I'm pretty sure it's a safe bet to assume that support will only increase in the future. Oh, btw Samsung supports .NET Core for Tizen
  • 0
    @apisarenco
    "Large complex web app" if that's the highest you are aiming to do, by all means use c#. What about safety critical systems? What about security?

    Dude, you can program electronics in js, it doesn't mean you should.

    Memory leaks? If you wrote something and it has leaks it says something about you not the language. Quite common approach for someone using garbage collectors all his life.

    Platform switching is not an issue at least for me, since c++ code works everywhere, where there is compiler for it, or just common binary format. Properly written project looses very little time to handle different platform.

    And Comos, I wouldn't call it is but ok let it be. There is exception to everything I guess.

    I did some benchmarks, on dotnet, it seems there is same problem as in java, 48 MB ram vs c++ 3MB, also speed is 1,5 times slower at the very least.
  • 0
    @codedoge
    It's usually not working properly, there are performance issues on most unixes. Simple apps will work but something that works on windows won't work as well on linux. However if ever there will be decent support I won't complain.
    For entertainment there are shitloads of framework to sculpture in c/c++ python. Unity is bad but easy to develop in. Linux will however work well with unreal engine from the list of better engines, also ogre3d, which are open source and fully transparent , and of course written in native language, so they are highly optimized

    I am yet to see any decent c#, game working well on linux.
  • 2
    @esavier "if that's the highest you are aiming to do, by all means use c#" - lol, as if there are levels of "high".

    Dude, get the fuck off your high horse.

    Really!

    There are tons of complex stuff you can program, and judging by how idiotic you're behaving here, I doubt that you've seen even the tip of it all.

    When conducting test benchmarks, do a bit more than an if/else statement, ok? Or why don't you fucking google it?
    https://techempower.com/benchmarks/...

    https://ibm.com/developerworks/...

    https://blog.famzah.net/2016/09/...

    your stupidity and arrogance is just disgusting.
  • -1
    @apisarenco
    I am on high horse? It's you who act like mighty arrogant insecure fuck so far.
    I stated my opinion you picked the fight because I named your beloved language "autistic".
    You clearly don't know what I am doing same as I don't know what you are doing. I just stated that compared to stuff I helped made for military sector, webapps look rather weak from my perspective, whatever its purpose is.

    Standard benchmarking is to write mandelbrot/binary tree/regexp functionality or similar and simply measure stuff. Do I made mistake? Maybe, prove what I did wrong.

    For the future, have some respect for other people, or they will start to treat you the same.
  • 0
    @esavier oh don't embarrass yourself. You started a language holy war without a shred of knowledge about the "battlefield".
Add Comment