А как сейчас с работой?
Пока у них тяжбы шли, могла быть опасность, что использовать нельзя (я там не разобрался - язык или конкретную реализацию виртуальной машины). Тогда Гуглу проще дописать свою часть, чтобы с Ораклом не конфликтовали, но это будет несовместимо с прошлыми версиями. Я так понял из новостей.
И не волгу и не в преферанс и не выиграл. Не угадали.
Ну, а чтобы не бояться:
Мелкомягкие уже пытались написать свою "немного исправленную" виртуальную машину для явы. Хитрыц план не удался. Огребли штраф и похоронили свой J++. И начали лепить из говна и палок дот нет.
Как бы и из чего бы ни начали, а получилось гораздо лучше. У Джавы только одно преимещуство перед Дотнетом - она появилась раньше, поэтому уже много понаписали, и она успела пролезть везде. А ещё она успела поменять владельцев, а также получить несколько не совсем совместимых реализаций, что явно не пошло ей на пользу.
и, скажу я вам, очень недурственно вышло
Ну, на вкус и цвет. В самой по себе, содранной с явы чуть более чем полностью, идее нет ничего плохого. Плохо брехать про мультиплатформенность и 20 лет спустя рассказывать как "вот щас у нас Core точно мультиплатформенным будет, чесслово!"
Ну а цэ шарп... Я лучше на питоне попишу. У меня к нему тоже пара претензий есть (как и к яве :)) но к шарпу больше. За одни только замыкания со ссылками в шарпе мелкомягким положен пожизненный эцих с гвоздями.
У Джавы тоже есть существенный недостаток - долго отсутствовал нормальный UI фреймворк. Да и сейчас если и есть что - узкие нишы. Джавист либо изучает веб-фронтэнд, либо Андроид, либо чисто по бэкэнду.
я не в курсе, когда там MS рассказывал про мультиплатформеность.
а про замыкания со ссылками можно подробнее?
Во, нашёл самый простой (наверное) пример: https://www.simplethread.com/c-closures-explained/
public static Func<int,int> GetAFunc() { var myVar = 1; Func<int, int> inc = delegate(int var1) { myVar = myVar + 1; return var1 + myVar; }; return inc; }
Вот где про него рассказывают можно посмотреть. Суть в том что в созданное замыкание для inc попадает не значение myVar а ссылка не него. В результате в самой лямбде мы не только можем поменять значение myVar (что тоже хреново - "незаметный" канал для обмена данными) но и если myVar поменяет значение снаружи лямбды, она радостно начнёт использовать новое значение.
В чём проблема? В незаметных и хрен пойми как возникающих ошибках. (напомню, что в функциональных языках вообще переменных "как бы нет", т.е. они есть, но только на крайний случай :))
Описал лямбду, погнал код дальше, и через 20 строк поменял значение переменной, которую в лямбде использовал. А потом где-то вызывается лямбда и вместо +1 увеличивает на 123. Ой.
спасибо.
Но сорри, но здесь выстрел в ногу можно сказать намеренный))
Но сорри, но здесь выстрел в ногу можно сказать намеренный))
В примере-то? Конечно. Проблема в том что такие выстрелы в ногу в работе появляются всегда. Но не всегда находятся. Потому как сложно это.
Именно поэтому везде замыкания хранят значения. Но мелкомягкие не такие! Они ... долбо другие!
Если в описании чайника написано что он может долбануть меня током - я не использую этот чайник. То же и с шарпом.
Ну и проблема в том, что процентов так 98 всех программистов на шарпе не понимают о чём тут вообще речь. Так что им пофиг что написано в документации.
Если в описании чайника написано что он может долбануть меня током - я не использую этот чайник.
------
Хорошо что ты не в америке - там инструкциях к микроволновкам пишут что в них нельзя сушить котят...
Если в описании чайника написано что он может долбануть меня током - я не использую этот чайник. То же и с шарпом.
Мне сейчас показали вакансию - Сишарп, Дотнет, все дела... и в конце PHP. Блин! Да где они такие комбо берут? C++, C# и Питон. C# и PHP... Тут уже на JS+C# согласишься.
Ну не знаю. Приходишь на фирму бухгалтером. А тебе шеф "- Нам нужен бухгалтер, бла-бла-бла... и подмести улицу. - Что? - Улицу подмести. - А я тут причём? - Ну понимаешь, нам нужен бухгалтер... Ну и перед офисом грязно. Нужно подмести. Что непонятного?".
Вот и тут. Что непонятного? Шарп и пыхпыха - ганц нормаль. Я даже плохо себе представляю, как в одном проекте могут сочетаться эти штуки. Либо одно, либо другое, но не одновременно.
Но мне бератерин с динстлайстунгсфирмы посоветовала всё равно говорить, что я готов с этим работать и всё такое. На месте на фирме может вообще оказаться, что это всё не надо, а нужен джаваскриптер с джавой на серваке. Кто вакухи придумывает? Они там с программёрами своими хотя бы советуются?
N.P.
Во вчерашней почте:
- 3+ years of professional experience in software development
- Proficient in C#, with a good knowledge of its ecosystems
- Familiarity with the .NET framework
- Strong understanding of object-oriented programming
- Skill for writing reusable C# libraries
- Familiar with various design and architectural patterns
- Understanding fundamental design principles behind a scalable application
- Creating database schemas that represent and support business processes
- Basic understanding of Common Language Runtime (CLR), its limitations, weaknesses, and workarounds
- Implementing automated testing platforms and unit tests
- Experience with system architecture or leading a software team is a strong advantage
- Full-time availability is a strong advantage
Требуется лид.
-----
Угу... с тремя годами опыта и умеющий схемой базы данных описать бизнес-процесс...
Денег скока дают?
-----
Не знаю. Это - бодишоп.
Угу... с тремя годами опыта и умеющий схемой базы данных описать бизнес-процесс...
Не придерайтесь к словам - просто нужно создать модель бизнес процесса в БД. В бизнес-процессе есть сущности, они имеют связи - перенести в реляционную модель.