I must say I don't like Visual Studio much. Huge, slow, takes forever to start, million functions mostly unneeded. I am not a big fan of C# either. It is a descendant of C, which was made for systems programming. Also it is usually verbose like some stupid Java program although it was improved. I also don't always like that it is compiled code. So you could easily lose the source code and then not modify your program anymore. When I write programs that are entirely irrelevant to NAV, I use Python or Ruby, these dynamic, friendly, succint interpreted languages and lightweight editors.
But it seems if you do .NET programming precisely to interact with NAV, you don't really have a lot of options. You cannot really use IronPython or similar stuff, as they run on the Dynamic Language Runtime and you cannot compile it to classes you can call from NAV. Similarly, if you for example publish a WSDL web service from NAV, and you want to write a program that consumes it, you don't have many options, you need to generate a wrapper code to do that, and only Visual Studio can do that, and only for C#. (Or VB.NET but that is not serious.) If you try to use another editor e.g. SharpDevelop it will probably be unable to do that.
What are your opinions about the options here?
I guess if I really had to I could live with C# because they really improved some of the verbosity problems at least. C# code used to be that stupid, Java-like stuff where you have to say every damn thing three times: SomeBloodyLongNoun someBloodyLongNoun = new SomeBloodyLongNoun(); so they improved it and now it is var someBloodyLongNoun = new SomeBloodyLongNoun(); so you feel less like some parrot now
Although I would still prefer something like the Boo language.
But I would really like to get rid of Visual Studio. It is a too huge tool for the small tasks we tend to have.
What is your opinion and what alternatives you found?
Comments
But there are limitations.
http://vjeko.com/blog/top-10-things-i-miss-in-net-interoperability-in-nav-2013
NAV C/AL is a 4GL - a very good one.
Because a 4GL is limited, to be good, it needs to offer the capability to use other more complete and complex tools.
C# is what Cobol could have become if it was not bogged down in committees.
C# being based on C is far less wordy, which is a big advantage.
It also comes with a lot more baggage and a lot more requirements.
I am sure they could make it less cumbersome, but not without breaking all the old code.
Maybe some brave soul will write a 4GL version of C# that still allows it to be used like C#.
BusinessWeek has a current issue completely devoted to coding . Take a look at it. I found it fascinating.
http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
http://mibuso.com/blogs/davidmachanick/
I am a big fan of 4GL, I agree that C/SIDE is one, others are Visual FoxPro and MS Access, and I really wonder how it did not survive better. As it is truly a great idea. I remember going to school and spend a semester hand coding a DBASE Clipper app then the teacher showed us how to do it in Magic 4GL in ten minutes.
Especially outside the Microsoft world, when LAMP servers arrived and people began coding web apps in Perl, Python, Ruby, they were just hand-making every form and everything in code, truly a waste of time.
It was only much later that Ruby on Rails, with its ability to generate scaffolding, that began to look like a 4GL. Much later Wakanda Server appeared but did not get popular.
I don't know why. Apparently Silicon Valley's idea of a web app is a website meant for ten million customers so everybody hand crafts the UI. Only Microsoft had the brains to figure out people also make web apps for letting fifteen employees enter timesheets, for example, so a fast and simple 4GL is necessary. So even Visual Studio ASP.NET works somewhat like a 4GL that you can drag an SQL table to a web form and most of the code is generated automatically.