I'm very angry at C# 😡 (and java in some degree). Recently I decided to create huge project in C#. (It is my favorite launguage now because of great VS2017 its features, lib and such). I used windows form app in order to make pretty gui for this program. Everything worked fine, but i decided to implement some 3d rendering system in order to display grafs in 3d, oh how foolish was I.

Ok so what are my options?
1.DirectX9 -> abandoned by microsoft, they say its ded so nope.
2. DX11 -> great! i even can use sharpdx or simpledx to use it! oh wait, what is that? INVALID DX CALL
(in demo code)Damit!
3.OpenGL -> obsolete, lib non existent.
4. Library that comes with .NET -> WFP only sorry!
(i found some dogdy tutorials on yt for dx11 but they need .net 2.0 really?) 😐

In that moment i decided to swich to java. (because Java c#_launguage = new Java("microsoft");)
After 1 day of instaling eclipse and 2 more to install the newest jdk MANUALY i realized that java isn't that easy to use as C#, because:
- no dynamic type-> HUGE PAIN i cant use a single list to store everything buuuu!
-console? yes but its burried inside some random lib and its not consistent with every java version!
-gui editor similar to VS one? oh you need to create it from scrach!😫

Well at lest i can render things. So maybe java will render suff as another tool in my app? Nope pipes NON existent, we need to use sockiets! (unity pipe plugin was easier! worked but it was SLOW)

Ok so after few more days of struggling i managed to render simple graf using directx9 in my original C# project that works fine.. 😥 I only need to create a lib to wrap in and we are done!

Why can't companies create a laungage that will have ALL the features i need? Or at lest give me something like pipes that work in every laungage that will be helpful!

I know it is sometimes stressful to be a dev. But when your program works 😀 that is great feeling! Especialy when you learned to code yourself like me 😁. (student before a university, that lives in small abadoned town)

  • 4
    Bro, drop forms. Do yourself a favour and start learning WPF atleast. You are going to get shit from the senior c# community if you use winforms.
  • 2
    Agreed. WPF is the way to go.

    If you’re really after something to do some 3D work with though, then look into Unity.
  • 0
    If you’re just trying to put some 3D stuff into a normal app, then yeah WPF is the way to go.

    You can even host some WPF content in a winforms app if that’s a requirement.
  • 0
    What about backwards compability? I want it to work on win7, or even xp if it's possible (but mainly on win7-up)
  • 0
    Well, to me it seems like you are giving up on things too soon and switching up too much. I don't know much about C# GUI so can't help there, but if you want to support more OSes you can go with JavaFX it should work on XP and up, GNU/Linux, MacOS and more. For example, I'm not sure what you meant by Java not having dynamic typing like C# does and that doesn't allow you to store elements in a list? If you nees to store all kinds of elements just use List<Object>. Also the console stuff? Didn't really understand what you meant, but Java is almost 100% backwards compatible, so it shouldn't be different from version to version. Also for IDE I'd recommend IntelliJ.
  • 0
    I switch often because core of my program is ready and i want to try out different options that i have, on example to see what i can do in java and what i can do in C#.

    I totaly forgot about "object" list :p i thougt list needs something specyfic like the full name of object im putting inside it.

    In case of "dynamic" type its special type in c# that allows you to add additional things to it on the fly and i dont think java got it.

    Thanks for tips tho. I will check them out later. I learned everything myself so i have no idea what should i use, im just a happy explorer now 😀.

    Different .net apps like win app and wfp in addition to different .net versions feel like different launguages for me, because if you want to switch your app you need to change a lot of code!
Add Comment