Well, SED doesnīt seem to crash anymore, at least it didnīt for me for a long time, but debugging could be improved of course. But doesnīt unity have nothing for debugging other than log messages at the moment? The language in my opinion also shouldnīt matter as you should be able to get the basics of any new language in a few hours if you know one quite well and have a basic understanding of how things work.

The component system of Unity is actually very nice if you just accept it, which is a bit hard if you arenīt used to something like that.
I am probably completely wrong, but currently my following explanation on how it may work was capable to explain me all behaviour and syntax for the work with components, I got to know so far:
The base component is called "GameObject". It has a list where you can add new components to, where each component is the pointer of the components classes instance. If you attach a script component, it always gets the pointers to the other base components set if they exist and otherwize null. Most components actually get this information so that you can easily access another component from each other. If you donīt have such a direct pointer, you can just search for the component in the components array attached to your object using GetComponent().
So you basicly just have those components, can link them together and get reach each other component from each component.
This system is clean, quite comfortable, well organized and basicly usefull for the one working with the editor wink But it makes you code quite modular and if you arenīt coding modular, it can easily get a bit messy tongue But you often want moduls anyways to be able to reuse code.
I havenīt yet gone into unities shader system, but the editor seems to dislike it if you open windows forms. It crashes most of the time for me, but works well in the published version...