Обсуждение:C Sharp
Статья слащава[править]
"в Си-диезе все переменные передаются по значению" - нереальная ХУИТА Oroch 23:29, 25 апреля 2009 (MSD)
- Не вижу никакой удыты. Вы пробовали кодить на С#? Символ * как обозначение адреса переменной там не используется. Вообще C# не даёт пользователю работать с памятью напрямую ни читать ни писать. Это сделано опять таки для повышения безопасности и уменьшения глюков. Но на деле по адресу передаются чуть ли не все переменные и абсолютно все классы.
- Вы пробовали писать на С#? Слышали про unsafe? Работа с адресами там вполне возможна. Это один. И два - в С# как раз большая часть данных передается по адресам.
- А я что, говорю что адреса там совсем не используются? Они используются, только всё это делается скрыто от погромиста.
- "Символ * как обозначение адреса переменной там не используется". Ваше же. Так вот, в решетке есть указатели аж в виде звездочек - достаточно использовать директиву unsafe, пометить блок кода как ансейф и юзать.
- Нужно ещё в настройках IDE поставить галку "Разрешить небезопасный код".
- "Символ * как обозначение адреса переменной там не используется". Ваше же. Так вот, в решетке есть указатели аж в виде звездочек - достаточно использовать директиву unsafe, пометить блок кода как ансейф и юзать.
- А я что, говорю что адреса там совсем не используются? Они используются, только всё это делается скрыто от погромиста.
- Я пишу на С#. Там есть [ccommicrosoftmsdn/en-us/library/14akc2c7.aspx ref-параметры], я гарантирую это. А ты - быдло.
- Насчёт работы с памятью - гуглите класс Marshal.
- Вы пробовали писать на С#? Слышали про unsafe? Работа с адресами там вполне возможна. Это один. И два - в С# как раз большая часть данных передается по адресам.
Автор, учись называть статьи, я только когда перешел по ссылке, понял, о чем она. Рак 23:31, 25 апреля 2009 (MSD)
- Увы, нормальное названние "C#" уже занято. Вот и приходится использовать недоназвания.
Статью писал редкостный идиот-быдлокодер-кнопкорисовальщик, видимо просто увидел C++ и зачесалось. Что в очередной раз доказывает: дотнетчик - хуже пидараса.
- Ты так это говоришь, как будто в этом есть что-то плохое. Изучив C# я всё же вернулся к истокам и сейчас кодю на Java.
- В этом и правда есть кое-что плохое. Статью следует писать, если тебе есть что сказать. А так пришлось в итоге всю статью Анонимусу переписывать.
- И не смотря на это статью таки дописали. А если статья есть, значит она кому-то нужна. И тот маленький вклад, вложенный тем персонажем, так вежливо названным тобой как пидорасом, он внёс. мимокрокодил...
- В этом и правда есть кое-что плохое. Статью следует писать, если тебе есть что сказать. А так пришлось в итоге всю статью Анонимусу переписывать.
Тема слабо-годная, статья так себе. Раскрыть: - "как Java, только родное, мелкомягкое" - холивары Джавы и Шарпа - холивары за дотнет - холивары за "тупой, бессмысленный язык высокого уровня для быдлокодеров-кнопкорисовальщиков" Альфа-900i 23:46, 25 апреля 2009 (MSD)
- Поддерживаю. Может и вы что-то добавите от себя?
Тема годная и немаловажная, но запилине ужасающе. Будет желание - долобзирую лулзами из жизни сабжа. - Анонимус 08:43, 26 апреля 2009 (MSD)
- Согласен, лулзов не хватает. Да и статья писалась буквально за 10 минут в ответ на статью о С++. Требует доработки.
следующая ступень развития C-языков после С++
Уже отсюда ясно, что статья - бред.
Ну вот, статья почти сносна. Осталось только переписать историю, дабы удалить последние ошмётки первоначальной унылости.
J[править]
Вы все сосете уток. Потому что вы забыли про такие клоны жабы как M$ Java, MS J++, MS J#.
- Это надо в историю. Статья то всё равно про C#. Или ты имеешь ввиду, что нужно создать статьи про эти фейлы?
- Это можно запилить в Жаба. + уёбищное, как и MFC, WFC и срач - Sun: "У вас жаба не настоящая", М$: "ОК."(выпиливая JVM из виндовс), Sun: "Ээээ..."
Про панельки[править]
Не знаю, писать - нет. На сцышарпе панели инструментов (которые копи-пасте-кат-сейв) нужно рисовать вручную (!), что ппц. По крайней мере, год назад это было так. Это техническая особенность, но доставляет своим фактом.
Ебаный долбаёб. Такой долбаный долбаеб, что я даже непонимаю, как ты таким можешь быть.
- Ой-вей.
Иди науд!Ви так говорите как будто я обижусь.
А в 2005 студии вменяемых средств рисования не было (а к плюсам/МФЦ были). А панельки были нужны. Очень бесило. Такие дела.- Быдлокодер мышкой детектед. Привет.
НЕНАВИСТЬ[править]
Реквестирую больше ненависти!!!! и ещё больше!
- Плюсую, дрочую, или как там? Где моя любимая плашка НАТЕ??
Удните тунца! Лав ит! Суксь красноглазые!
НЕНАВИСТЬ НЕНАВИСТЬ НЕНАВИСТЬ!!!111одинодинодин
Какая блѣдь выпилила картинку "Си шарп для школьников" ?
Тоже реквестирую ненависти. .NET же не нужен. Линуксоид, да.
- статья гуано, перепиливать некому
Мышепрограммирование-срач goes here[править]
На самом деле ничего плохого в программировании мышкой В ПРИНЦИПЕ нет. Очень часто важно быстро создать приложение, которое будет выполнять поставленную задачу хорошо и правильно. "Мышкой" сделать многие шаблонные действия намного быстрее.При кривых руках работать мышкой гораздо быстрее. Другое дело, что всё равно в итоге надо вручную всё дописывать и именно в этом месте быдлокодеры собственно и создают произведения исскуства. Естественно школоте, которая реально программировала только в своём воображении, это неизвестно.
- И естественно, быдлокодерам-мышекликерам, никогда не писавшим что-либо полезнее свистопердульных пользовательских утилит (навроде программы для снятия скриншотов рабочего стола в виндозе), невдомёк, что можно довольно успешно программировать только клавиатурой (исключение - рисование гуёв).
- И естественно школьникам, программирующим в своём воображении вирус, который покорит всю планету невдомёк об UML и других способов графического прототипирования.
- Для создания ПРИЛОЖЕНИЙ? Ты тесномозглый лузер, мышекликер-кун! Фикси свой ДНК.
- NO YOU! Про классовые диаграммы ты ничего никогда не слышал?
- Ежупонятнослышал, тупень ты упёртый. Я писал о том, что при написании "быстросоздаваемых приложений" они могут понадобится только если твой мозг не превосходит по объёму айфон. Хотя понятно, почему ты до этого не допёр.
- Я говорил не про "быстросоздаваемые приложения", а про быструю разработку, о зрячий! 90% программирования сегодня - это автоматизация бизнеса. Ктото долбётся с SAP, а кому-то легче нанять команду для создания IS. В этом случае очень много просто но занудной удни надо делать. UML и программирование мышкой очень спасает от долгого набивания тупого и однотипного кода и от кучи последущих исправлений от заказчкика, так как software requirments с этим самым UML согласовывается с заказчиком заранее.
- Не путай долблю с программированием, мышекликер-кун. Хотя, йооопта, миня осенило: сишарп для долбли же и создан!
- Всем программистам приходится иногда долбатся, я лучше покликаю мышкой, чем буду писать вручную тонны однотипных классов. Я кстати форсю indention of code, так что мне сложно быть мышекликером, дорогой)
- Не путай долблю с программированием, мышекликер-кун. Хотя, йооопта, миня осенило: сишарп для долбли же и создан!
- Я говорил не про "быстросоздаваемые приложения", а про быструю разработку, о зрячий! 90% программирования сегодня - это автоматизация бизнеса. Ктото долбётся с SAP, а кому-то легче нанять команду для создания IS. В этом случае очень много просто но занудной удни надо делать. UML и программирование мышкой очень спасает от долгого набивания тупого и однотипного кода и от кучи последущих исправлений от заказчкика, так как software requirments с этим самым UML согласовывается с заказчиком заранее.
- Ежупонятнослышал, тупень ты упёртый. Я писал о том, что при написании "быстросоздаваемых приложений" они могут понадобится только если твой мозг не превосходит по объёму айфон. Хотя понятно, почему ты до этого не допёр.
- NO YOU! Про классовые диаграммы ты ничего никогда не слышал?
- Для создания ПРИЛОЖЕНИЙ? Ты тесномозглый лузер, мышекликер-кун! Фикси свой ДНК.
- И естественно школьникам, программирующим в своём воображении вирус, который покорит всю планету невдомёк об UML и других способов графического прототипирования.
Скачал, посмотрел, покликал, понравилось. Сделано только для избавления от рутины. Решил изучить способы склеивания с C++, интересно. Если взглянуть без предубеждения, то хорошо, кто понимает всю бесконечную уёбищность и эволюционную тупиковость GNU toolchain... и всех других make`ов. Смотришь на зелененький start page и хорошо так. О алгоритмах думаешь. Клацаешь по клавишам, компилируешь. Думаешь, блѣ как 3.14здато, и на турник выйти успею, и зубы не забуду почистить, столько чая выцедил.. И прогресс наблюдается. Создание GUI используя drag&drop с автоматической генерацией кода - самый логичный способ. Одни программируют используя только клавиатуру, другие подключают ещё и мозг.
С изобретением WPF уже меньше программирования мышкой, т.к. xml легче редактировать вручную, чем искать в блэнде нужные свойства.
- Безусловно, хотя программисты предпочитают VS... А вообще, мой подход к программированию мышкой: выучи программирование клавиатурой, а потом расслабляйся. Принципы здесь неуместны: программирование мышкой избавляет от кучи рутины. Только необходимость обрабатывать сгенерированный быдлокод напильником никто не отменял.
И естественно, быдлокодерам-мышекликерам, никогда не писавшим что-либо полезнее свистопердульных пользовательских утилит (навроде программы для снятия скриншотов рабочего стола в виндозе), невдомёк, что можно довольно успешно программировать только клавиатурой (исключение - рисование гуёв).
- Исключений нет. Гуй програмируется тоже только клавиатурой на ура - гораздо точнее красивее чем мышкой!!!
- проект нужно сдать в срок! а надрачивание хуя в ручную убивает в пустую до хуя времени, что нихуя не годится, если конечно твой начальник не мудак который считает "чем бы программер ни занимался, лишь бы заебался", а эффективность работы меряет количеством написанных вручную строк (включая ручное надрачивание хуя - что есть способ написать до хуя строк при том же результате)
- Гуй ручками пишется в разы быстрее, чем пиксельхантинг мышкой. Естественно, если вы действовали грамотно и спроектировали свой проект заранее. Копипаст и мозги - решают любую задачу в предельно сжатые сроки.
- если у тебя лапы кривые а глаза косят, то ты конечно тратишь полчаса на "пиксельхантинг", вместо пары минут lol
- Гуй ручками пишется в разы быстрее, чем пиксельхантинг мышкой. Естественно, если вы действовали грамотно и спроектировали свой проект заранее. Копипаст и мозги - решают любую задачу в предельно сжатые сроки.
- проект нужно сдать в срок! а надрачивание хуя в ручную убивает в пустую до хуя времени, что нихуя не годится, если конечно твой начальник не мудак который считает "чем бы программер ни занимался, лишь бы заебался", а эффективность работы меряет количеством написанных вручную строк (включая ручное надрачивание хуя - что есть способ написать до хуя строк при том же результате)
Вычеблѣнах, дыранулись? "Программирование мышкой" - миф, такого не бывает (не, ну есть всякие штуки типа "Визуального программирования" или там Workflow Foundation, но ведь здесь далеко не это имеется в виду, правда?). Если тебе нужно поместить на форму сранный текстбокс, настроить его внешний вид, лэйаут и т.п. то это не программирование, это ДИЗАЙН. Программирование это если, например, нужно написать обработчик события. То что в WinForms ГУИ описывается кодом это недостаток WF, но не программиста, которому посчастливилось его юзать. Вот в WPF все по другому - там разметка, которую писать даже легче, чем возюкаться с мышкой (ненавижу мышку, хотя дотнетчик, бу-га-га). В итоге один и тот же прогер может в WF юзать мышку, а в WPF расово-верно писать разметку. И что, он "мышекодер"? "Программирование мышкой" придумали страдальцы от MFC и прочих свингов, у которых нет нормальных инструментов для ДИЗАЙНА. Долбоёбы такого же вида думают что HTML/XML - языки программирования.
Как дело было или история возникновения[править]
Какой дебил писал это? На кой там написана история жабы с её стиральными машинками. В кратце так: была жаба, из неё + delfi + cpp запилили дотнет, я ничего не пропустил?
каким боком дельфи к шарпу относиться? Близко ничего похожего нет.
- Свойства, события. Это навскидку. У них один автор, лол, влияние очевидно.
- Целевой аудиторией же.
- Сказал быдло-кун не знающий ни одного из этих двух, и считающий "{}" vs "begin end" песец кардинальным различием языков.
История[править]
Все было совсем не так.
Сначала была модула, но ее никто не заметил. Потом был смоллток. Он был крутой — это был объектный язык, а не объекто-ориентированный, но он опередил свое время. Потом был труп страуса и плюсы. Почему-то все решили, что тупая объекто-оринтированность, как в плюсах — есть труъ. С сишным же синтаксисов в виде фигурных скобочек. Ну а совсем отдельно был Николас Вирт со своим пасквилем. Из пасквиля выросла модула, с которой все и началось, но которую никто не заметил. Оттуда же вырос и оберон. На все эти язычки было всем пофиг. Однако в каком-то из них была компиляция в промежуточный код (p-code, теперь это называется байт-код). Это увидели сантехники. А поскольку плюсы страдали тяжким наследием чистых сей — они решили сделать свой язык с блекджеком и шлюхами. В этот кадавр по имени Java попала кастрированная объекто-ориентированность as in C++ — поэтому предшественником жабы считается модула. В жабу же попала идея промежуточного кода из паскаля-модулы-оберона — поэтому промежуточный код считается нововведением жабы. Синтаксис был конечно же в виде фигурных скобочек.
Весь предыдущий текст должен по идее быть в статье про жабу. Казалось бы, причем здесь сишарп? А притом. Когда жаба ВНЕЗАПНО оказалось успешна — проснулся Билли Гейтс. Сначала мелкомягкие сделали свой клон жабы — который конечно же был нисчем не совместим кроме самого себя. Это была Microsoft Java. Но сантехники быстро сделали из жабы стандарт и заставили мелкомягких его соблюдать. Потом был Microsoft J++. Это типа жаба же, но названа типа иначе и встроена в старую линейку Visual Studio с ее флагманом С++. На жыплюсплюс было всем пофиг. Жаба все еще была популярна. Поэтому был создан .NET — который как виртуальная машина жабы, но от мелкософта. Под него портировали бейсик для быдлокодеров, очередной Microsoft J, который назвали J#, и на который было по-прежнему всем пофиг. Туда же запилили изуродованный до неузнаваемости C++, чтобы гики не очень расстаивались. А флагманом, вместо изуродованных плюсов стал новый супер-пупер язык C#. В него попала кастрированая объектно-ориентированность из плюсов, он компилирует в промежуточный код доднеда, а синтаксис там конечно же в виде фигурных скобочек. Найдите 10 отличий от жабы.
Потом J# выкинули на мороз, признав, что он всем пофиг, а в C# добавили еще свистелок и перделок. Но это уже другая история.
- Отлично, подредактируй это, часть вынеси в жабу (там нет её истории), часть в c#. Лучше расписать ченжлог версий c#, чем стиральные машинки жабы.
- Ченджлог там тупой и не лулзовый. В версии 1.0 не было ничего, в версии 2.0 наконец запилили generics — то есть ADT, если по-нормальному. В 3.5 запилили linq — это такой DSL для запросов к данкам банных и прочим коллекциям. Идея хорошая, синтаксис — долбанут напрочь. В 4.0 наконец-то сделали параметры по умолчанию!
- Причём тут лулзы, а может надо, просто иметь руки не из зады и писать статью нормально, что бы доставляла? А свои "измышления" по поводу linq... лучше оставь при себе, специальные олимпиады тут не проводятся.
- Ченджлог там тупой и не лулзовый. В версии 1.0 не было ничего, в версии 2.0 наконец запилили generics — то есть ADT, если по-нормальному. В 3.5 запилили linq — это такой DSL для запросов к данкам банных и прочим коллекциям. Идея хорошая, синтаксис — долбанут напрочь. В 4.0 наконец-то сделали параметры по умолчанию!
- Отлично, подредактируй это, часть вынеси в жабу (там нет её истории), часть в c#. Лучше расписать ченжлог версий c#, чем стиральные машинки жабы.
Всё верно, только не упомянут срач между мелкомягкими и саном из-за JVM. В 1999-2001 у мелкомягких была своя JVM и вообще они типа помешались на этом блѣдстве. Виртуальная машина от мелкомягких была совместима с сановской явой, но вот сановская ява не очень работала с мелкомягкой. Сайты использующие явовские апплеты очень по-разному выглядели в зависимости какая джава стояла (а в большинстве своем стояла мелкомягкая джава, так как она уже была включена в винду) Сану такое положение дел не понравилосьи они пригрозили на мелких подать в суд. Мелкие психанули и полностью выпилили JVM из ХР, что привело в ступор всяких гламурных кис и прочее быдло, так как всякие чЯтики работающие на джава апплетах (и вообще путать яву с яваскриптом не рекомендуется - это совершенно разные вещи) перестали не то, что работать, а вообще отображаться. Быстрый бег на sun.com и установка JVM ситуацию не спасали, сайты упорно отказывались работать требуя мелкомягкой JVM. Так же некорорые приложения просто вылетали когда стояла сановская ява. Я лично "пофиксил" не одну тачку с ХР в 2002 году ставя мелкомягкую яву скачанную годом раннее. Потом Мелкотня заявила нам науд не нужны всякие JVM! У нас будет круче! и высрали говно в форме .net . Хотя дотнетом сначала называлось все подряд: винда Windows.net (Потом она была перееименована в windows 2003) MSN messenger.net...
- Ну так что? Кто нибудь совершит подвиг и перепишет историю?
MS JVM была совместима с Sun JVM примерно также, как Эксплорер 4-й версии был совместим с Нетскейпом 4-й версии. А поскольку никто никогда не проверял (и не проверяет до сих пор!) врерсию явы в своих программах, то имело место быть множество разнообразных эпических фейлов с обеих сторон. Более того, помимо собственно бинанрной "совместимости", имелась превосходная "совместимость" на уровне исходного кода. Сан возмутилась, поскольку уроды из M$ обгадили им весь невообразимо распиаренный принцип "пиши один раз, запускай где угодно", и потребовали "привести в соответствие". Ессно, M$ этого сделать не могла, т.к. имелесь туева хуча программного обеспечения, написанного быдлокодерами по инструкциям от M$ с использованием последних "достижений" типа делегейтов (и чего так M$ любит делегейты, а?) и соответственно чуть меннее чем полностью зависимых от JVM фирмы M$. А поскольку в ту пору Сан была одной из немногих контор, не попавших в анальное рабсто к M$, то намеков типа "а может вы сами приведеие в соответствие" Сан не поняла, и дело закончилось жутким срачем, взаимными угрозами и последующим выпилом M$ JVM из XP. Правда процесс выпила произошел намного позднее, когда Сан пригрозила подать в суд, а мелкомягкие уже выпустили .Net.
- >последних "достижений" типа делегейтов. Убейся долба.
- Сам убейся, делегаты - от лукавого.
- А чем ты без них обходился бы до появления всяких лямбд, если надо люто, например, передать куда-то функцию? Прилеплял бы "Класс, который по смыслу заменяет..."?
- Сам убейся, делегаты - от лукавого.
- >последних "достижений" типа делегейтов. Убейся долба.
Поболтать по теме захотелось.[править]
Сан известна своим рьяным соблюдением backward-compatibility. Мелкософт известен прямо противоположным. Думаю, это неизбежно скажется на будущем дротнета. На нём удобнее писать свистопердульки, юзерофильные аппы, чем в нативном коде, но серьёзный бизнес его никогда не примет. ?
- Серьезный бизнес и свистопердульки - понятия еще как совместимые. ИМХО, бизнес-логику стоит писать в нативном коде (если не охота, чтобы твой быдлокод прочитали), а оболочку - в управляемом, WPF в помощь.
Дизассемблирование ООП языков[править]
Дизассемблирование ООП программ приводит к обнаружению сплошных косвенных вызовов. Читабельность такого кода стремится к 0 ибо косвенный вызов в дизассемблере никуда не ведёт.
- Дизассемблирование оставим для извращенцев. Есть отличные декомпиляторы.
- Получается, что ООП - отличная защита от всяких крякеров. Можно добавить в плюсы.
- Сгиньте, нубье! Шарп разбирается почти полностью, чуть ли не с именами переменных!
- Не чуть ли, а с именами переменных. Видимо, у Вас просто несвежая версия Рефлектора.
Дотнет вообще и си-шарп в частности должны умереть[править]
Это ужас, ничем не сдерживаемый, предательский, красно-коричневый, триколорный, монохромный УЖАС. Просто полный песец. Невероятный. Какая-то непосредственно в мозг внедряемая прослойка между грамотным кодом и итоговым продуктом. Блѣть, я поверить не могу. Просто на корню выжигается ПРАВИЛЬНОЕ отношение к тому, что мы создаем. Вот вы все можете представить, как НА ЭТОМ ГОВНЕ сотворить полностью удовлетворяющий заказчика проект? Или вообще - вменяемую линейку продуктов? Блѣть, да еще и в сжатые сроки, да еще и масштабируемых... Со всей оговоренной поддержкой, разумеется - еще и при текучке кадров...
Ёлки - и чтоб за это платили деньги?!
Я могу представить. Легко. Богатый и разнообразный стаж.
P.S. Я еще и на Дельфах писал, ага. Тоже дерьмище полное, хорошо хоть, без дополнительных говнопрослоек. Жаль, что все штуки до сих пор работают без претензий от заказчиков. Да они идиоты, заказчики-то, ни хрена не шарят.
P.P.S. Ах да, Венда ма$дай, Линух рулез. Или наоборот? Сорри, подзабыл, работа.
cnetdt00imgg/820/820158_vb.jpg
- Добровольно-принужденный до-диезник-дотнетчег добавляет что дотнет не нужен и все работает лучше и надежнее через родной виндовый API.
И что бы не говорили, а C# всё равно является более современным, удобным и более совершенным ЯП в сравнении с тем же C++, который за столько лет по сути стал уже набором костылей. Насчёт прослойки между грамотным кодом и итоговым продуктом - не соглашусь. Даже если и производится преобразование в MSIL, логика программы не меняется (2х2 оно и до, и после преобразования в MSIL будет =4; ну, а если нужны вам указатели, неуправляемая память - всё это в шарпе тоже есть). А так, можно таким же образом, например, начать ругать все компиляторы: это какие-то прослойки между исходным и машинным кодом... И что теперь, давайте на ассемблере вообще всё писать, а лучше сразу на перфокартах...
Баг с генериками[править]
После переписывания на C++/CLI (cl.exe /clr:pure) заработало:
using namespace System;
ref class Base1{};
ref class Impl1 : Base1{};
generic<class T>
ref class Intermediate {};
generic<class T1,class T2>
where T1 : T2
where T2 : Base1
ref class Base2 : Intermediate<T1> {};
int x;
void Do()
{
Base2<Impl1^, Impl1^> ^t1 = gcnew Base2 <Impl1^,Impl1^>();
}
int main()
{
try
{
Do();
}
catch(Exception ^error)
{
Console::WriteLine(error);
}
}
призываю К.О.
- [cruradikals011/i315/1102/31/91f7b784b094.png А вот нихуя!]
Данный баг доступен на .NET до 4-ой версии. В 4-ой версии он уже не воспроизводится.
Какого члена[править]
Реквестирую рассказать мне, куда делась хорошая, годная статья про C# с картинками и почему тут какой-то невменяемы обрубок явно без лулзов с минимумом упоминаний характерных особенностей?!
Фантомас разбушевался![править]
Фантомас серьёзно болен.
Повелеваю вам, о моя интернет-армия, взять картинку вот из [ccauwaterlooplg/~holt/papers/fatal_disease.html этой статьи], только:
- Вместо «cobol» написать «C#»
- Вместо «unspec» написать «MVC»
- Вместо «abnormal» написать «Unsafe»
И кто выбрасывает лулзы? Кому-то очень обидно, что его язык программирования не самый лучший в мире?
Мистер Баллмер, залогиньтесь уже.
- Петросянщина не есть лулзы. Как-то так.
Linux[править]
Про "Linux не нужен на сервере" -- зачёт. Ещё бы пару высеров такой же толщины, и 95% линуксойдов рунета отложат столько кирпичей, что рунета за ними видно не будет. Жги ещё!
- Осталось лишь объяснить этим 95%, что WISA-стэк с Express-лицензиями обходится оверселлерам гораздо выгоднее, чем линупсовые нищеVPSки на OpenVZ. Для смака показать статистику, по которой даже самые последние нищеброды повально переносят свои убогие хоумпаги на виндохостинг. %)
- А может наоборот, виндохостинг используют в основном нищеброды для хоумпаг? Иначе как вы объясните, что microsoft пилит поддержку Linux в качестве гостя на своём Hyper-V?
- Кстати, вообще, что такое эта WISA? Нагуглил только производителя унитазов. На педивикии статью удалили.
Это кто F# назвал альтернативным синтаксисом C#?[править]
Бред собачий. Тогда скала и кложура тоже альтернативные синтаксисы джавы. Язык совершенно иной. "Шизофрения" присутствует для интероперабельности с .NET
- Из статьи: F# — это ни разу ни очередной C#-подобный язык, а ещё один oCaml, но не упомянуть о нём нельзя.
Насчёт альтернативных синтаксисов — как-то раз у нас в продакшне приняли VB.NET вместо решётки — и не столько потому, что тимой в то время заправлял 1С-ник со стажем, а потому, что в васиковом Linq'е присутствуют операторы Skip и Take (именно ключевые слова, в шарпе же пришлось бы писать мозговзрывающий поток из лямбда-выражений, что аудит ох как не одобряет).
- Да, и ещё в ходу тот факт, что свойства анонимных типов могут быть изменяемыми, опять же в отличие от этого вашего C#. Идеологически это быдлокод, конечно, зато удобно и читается просто замечательно. Аудиторы радосте.
- Спец-синтаксис ЛИНКа - зло и должен быть уничтожен во имя добра. И вообще, что не так со Скип и Тейк?
- var result = array.Take(3)
- var result = array.Skip(3)
- Если в одном выражении нужно использовать и скип с тейком, и груп-бай, например, то в этом самом .GroupBy() в решёточке не получится обойтись без трёхэтажных лямбда-матов, пугающих одним своим видом целый отдел по code review. Это стало для нас какбе важнейшей причиной выбора именно VB.NET.
- Тогда стоит разбить выражение на несколько.
- Увы, далеко не всегда это работает. Есть хитрозадые реализации IQueryProvider, например[ccomcodeplexslinq/][ccomdevartwww/linqconnect/], где можно получить совсем неожЫданное поведение при выполнении этих ваших вложенных LINQ-запросов.
- А, так речь об ЛинкТуСкл? Я думал вы про ЛинкТуОбжект. Ну если нужна нормальная ОРМ - то проще взять Энтити или НХибернейт (для эстетов и батчей).
- Да, но иногда бывает задача абстрагироваться от источника данных и поддерживать в одном коде при помощи единого API всё, что приводится к IQueryable(Of T). К примеру, при вынесении контекстов пресловутого ЛинкТуСкл и иже с ним в модули-«драйверы источников», с возможностью дальнейшего расширения функциональности через дополнительные «драйверы».
- Кстати, как там сейчас дела с возможностью связать НХ и Оракл сервер без траходрома с установкой фирменной клиентской части?
- Слоупок-кун интересуется, что же все-таки не так со skip и take? var result = array.skip(5).take(10) какие нахрен лямбда маты???
- А попробуйте-ка их встроить в какое-нибудь from-in-group-by-where-group-by-where-order-by-group-by-where-select-выражение в семь-восемь строчек, чтобы допустим скипы были перед каждым group by, а тейк после последнего group by но перед where, - и при этом сохранив читабельность для ребят из CR, которые не могут в лямбда-форму из-за SQL головного мозга. IN B4 разбить на несколько - лучше не надо, дабы селектов вызывалось по минимуму.
- Печальную повесть глаголете. Лично я вообще крайне редко использую литеральный линк, ибо уныло и громоздко. На лямбдах все пишется короче и правильнее, да и не знаю уж, чего там в них такого сверхсложного и нечитаемого.
- А попробуйте-ка их встроить в какое-нибудь from-in-group-by-where-group-by-where-order-by-group-by-where-select-выражение в семь-восемь строчек, чтобы допустим скипы были перед каждым group by, а тейк после последнего group by но перед where, - и при этом сохранив читабельность для ребят из CR, которые не могут в лямбда-форму из-за SQL головного мозга. IN B4 разбить на несколько - лучше не надо, дабы селектов вызывалось по минимуму.
- Слоупок-кун интересуется, что же все-таки не так со skip и take? var result = array.skip(5).take(10) какие нахрен лямбда маты???
- Кстати, как там сейчас дела с возможностью связать НХ и Оракл сервер без траходрома с установкой фирменной клиентской части?
- Да, но иногда бывает задача абстрагироваться от источника данных и поддерживать в одном коде при помощи единого API всё, что приводится к IQueryable(Of T). К примеру, при вынесении контекстов пресловутого ЛинкТуСкл и иже с ним в модули-«драйверы источников», с возможностью дальнейшего расширения функциональности через дополнительные «драйверы».
- А, так речь об ЛинкТуСкл? Я думал вы про ЛинкТуОбжект. Ну если нужна нормальная ОРМ - то проще взять Энтити или НХибернейт (для эстетов и батчей).
- Увы, далеко не всегда это работает. Есть хитрозадые реализации IQueryProvider, например[ccomcodeplexslinq/][ccomdevartwww/linqconnect/], где можно получить совсем неожЫданное поведение при выполнении этих ваших вложенных LINQ-запросов.
- Тогда стоит разбить выражение на несколько.
- Если в одном выражении нужно использовать и скип с тейком, и груп-бай, например, то в этом самом .GroupBy() в решёточке не получится обойтись без трёхэтажных лямбда-матов, пугающих одним своим видом целый отдел по code review. Это стало для нас какбе важнейшей причиной выбора именно VB.NET.
запилите отдельную статью F Sharp (Портал:Ниасилили/F Sharp)
- А что в нём меметичного? Драмы, лулзы, срачи?
- ну тогда запилите общую статью про функциональные языки (Портал:Ниасилили/Функциональные языки) что хоть что-то понимать постоянных в срачах вокруг этих языков. ведь каким-то удом Micro$oft сочла фунцкиональный язык нужны, раз уж включила его в НЕТ, но включила не класический LISP, а какую-то непонятную НЁХ в которой хотелось бы чуток разобраться и понять почему и зачем
- Я только оКамл и ФШарп знаю, сам не потяну. Если хотя бы 3 человека соберётся (и шоб был хаскелист с лиспером), тогда пожалуй можно сделать статью ООП vs ФП. Вот тут чувак что то пытается объяснить про F#, можешь посмотреть. nuadou/forums/topic/8560/#382126
- может стоит начать в ниаслили? а там народ по ходу потянестся ^_^
- Ок я подумаю.
- пора пилить nruhabrahabr/post/201874/
- в этой статье какие-то ВП идут. То громогласно заявляют "функции - не объекты", то ругают Java, где функции именно не объекты (т.е. не являются хранимыми в памяти структурами данных, как в С#) и тонко намекают на С#, где функции - именно объекты (как минимум типа Func<...>). Да и вообще "война" между ООП и ФП - больше надуманна. Это просто разные уровни проектирования приложения. Это всё равно что спорить: что лучше, седаны или дизельные двигатели? ООП "отвечает" за большие программы АСУ с тысячами и сотнями тысяч функций или с очень сложным объектом управления (большой завод, например). ФП "отвечает" за написание алгоритмов вычислений - он вообще не предназначен для написания именно программ автоматического управления. И оба подхода вполне можно совмещать. Тем более никто не мешает на той же Java писать в "функциональном стиле" (но никто и не рекомендует).
- пора пилить nruhabrahabr/post/201874/
- Ок я подумаю.
- может стоит начать в ниаслили? а там народ по ходу потянестся ^_^
- Я только оКамл и ФШарп знаю, сам не потяну. Если хотя бы 3 человека соберётся (и шоб был хаскелист с лиспером), тогда пожалуй можно сделать статью ООП vs ФП. Вот тут чувак что то пытается объяснить про F#, можешь посмотреть. nuadou/forums/topic/8560/#382126
- ну тогда запилите общую статью про функциональные языки (Портал:Ниасилили/Функциональные языки) что хоть что-то понимать постоянных в срачах вокруг этих языков. ведь каким-то удом Micro$oft сочла фунцкиональный язык нужны, раз уж включила его в НЕТ, но включила не класический LISP, а какую-то непонятную НЁХ в которой хотелось бы чуток разобраться и понять почему и зачем
Meanwhile[править]
Кто-то тихонько убирает из статьи по словцу, чтобы подлечить свою дырочку. Нужно поймать пидора.
- Нельзя ли поконкретнее?
Turbo C#[править]
Запилите!
- Нах? Вообще первый раз слышу.
SharpDevelop[править]
Добавьте в статью - cneticsharpcodewww/OpenSource/SD/Download/. Бесплатный годный аналог Visual Studio.
/* Unity */[править]
Все "наболее известные игры", созданные при помощи этого либо еще не вышли, либо являются поделками на уровне "архитекторов" в песочнице. Не удивлюсь, если всякие вастеленды с грохотом выдадут былинный отказ и разочарование старых фаллауто-задротов.
- Ага, особенно аудонный Endless Space. Движок аудонен.
- да это даже не движок, целая, монолитная среда. Ендлесс спейс - единственный нормальный представитель из уже созданного. В свое время была такая ерунда, называлась си++ builder от борланд,, очень по смыслу напоминает.
- Что не меняет того факта, что движок/среда - аудонны и дико популяны в на ААА проектах.
- да это даже не движок, целая, монолитная среда. Ендлесс спейс - единственный нормальный представитель из уже созданного. В свое время была такая ерунда, называлась си++ builder от борланд,, очень по смыслу напоминает.
Это к тому, почему крупные разработчики не пользуются.
- Суть Unity не раскрыта. Нужно больше НЕНАВИСТИ.
C# vs C++[править]
С++ - помойка есть, переходной этап от ПП к псевдо ОПП. И когда мусор вывозят - это хорошо
распиши если есть можешь доказать!
- Что, крестовичок, пригорело? Привыкай. ООП крестов - это нихуя не ООП, кури каноничную модель (типа смалтолкоской). Но даже то, что там есть - перечёркнуто всякими френдами и иже с ними. Это ваше множественное наследование - надругательство над отношением "является" как таковым. Интерфейсы, млять, спаяны с классами, ручное управление памятью, шизофренический буст, арифметика указателей, функции первого уровня, слабая типизация, уёбищное темплейтовое метапрограммироание ояебу. Это не язык, а песец, монстр переходного периода.
- чё с иннерами в C#?
- Можно (но не нужно) симулировать столь любимое тобой множественное наследование. На практике я за такое руки отобью.
- почему не нужно? what's wrong? и что делать если мне действительно нужен гибрид?
- Я те репетитором нанялся? Иди кури GOF, там всё наглядно расписанно. Если тебе нужен гибрид - мозги себе поменяй, если примесь - используй экстеншен.
- то есть единственный аргумент который ты способен привести это "так ннада!" lol
- Песец ты - дебил! Это сложный вопрос, подробный разбор которого займёт больше всей остальной статьи. Мало - мальских разумных джунов я посылаю читать ГОФ, но для быдлокодеров вроде тебя - мой аргумент действительно "Так Надо!", всё равно не поймёшь.
- чё пердак пылает? lol если бы ты понимал концепцию то мог бы её объяснить её суть за один абзац но ты не можешь! потому что сам нихуя в ней не понимаешь! lol
- Хочешь в один абзац - вали в Википедию, уёбище, а я профанации не уважаю.
- lol слив засчитан! lol
- лалка, ты слился уже в тот момент, когда пытался делать свои тупые правки.
- lol слив засчитан! lol
- Хочешь в один абзац - вали в Википедию, уёбище, а я профанации не уважаю.
- чё пердак пылает? lol если бы ты понимал концепцию то мог бы её объяснить её суть за один абзац но ты не можешь! потому что сам нихуя в ней не понимаешь! lol
- Песец ты - дебил! Это сложный вопрос, подробный разбор которого займёт больше всей остальной статьи. Мало - мальских разумных джунов я посылаю читать ГОФ, но для быдлокодеров вроде тебя - мой аргумент действительно "Так Надо!", всё равно не поймёшь.
- то есть единственный аргумент который ты способен привести это "так ннада!" lol
- Я те репетитором нанялся? Иди кури GOF, там всё наглядно расписанно. Если тебе нужен гибрид - мозги себе поменяй, если примесь - используй экстеншен.
- почему не нужно? what's wrong? и что делать если мне действительно нужен гибрид?
- Можно (но не нужно) симулировать столь любимое тобой множественное наследование. На практике я за такое руки отобью.
- А что ООП -- это круто? Это так в умных книжечках написано? Своё мнение есть?
- ООП - это круто в ситуациях связанных с моделирование чего либо. Не серебряная пуля.
- чё с иннерами в C#?
Вот та терада выше - это к С++, С# или к обоим? С# к ООП тоже имеет весьма отдалённое отношение, хотя и получше, чем С++ в этом вопросе.С# вообще скатывается в дикую смесь Perl, недо-Java и всякой функциональщины. Ввиду чего становится просто невозможно сделать простые вещи просто. Из-за отсутствия реальной альтернативы (VB - курам насмех, курсовики писать, да бухучёт) перспективы программирования печальны. Java одна всех не вывезет.
- К С++. Но по поводу его выблѣдков никаких иллюзий испытывать не надо. Java - попытка расчистить эти авигеевы конюшни. Правда вместе с навозом выкинули половину лошадей, в результате чего самые примитивные вещи решаются исключитель индусским методом. Где перегрузка? Где функции первого класса? Где события? Где многомерные массивы? Где, жалкие вы джава-блѣди, метапрограммирование?! Не говоря уже о концептуально неверной С++ - подобной модели ООП. C# - попытка довести Джаву до ума. Получилось прекрасно, вот только сколько заду не рви, из бомжихи принцессу не сделаешь. А нормальные языки вроде Скалы и Немерле широкого распостранения не имеют, так что печально всё, да.
- Давай не разводить джава срач. Замечу только что всё выше упомянутое было выкинуто из джавы намерянно, как быдло-инструменты для написания быдло-кода (точнее, не ООП-кода). Даже не упомянутые тобой "дженерики" (по факту их нет - просто средство упрощения синтаксиса). Сколько я поднимал проектов на шарпе - везде, проблемы и глюки множились и росли на пустом месте именно из-за делегатов, и событий. Да ещё прибавились лямбды - они в этом плане даже хуже, чем в Перле регулярные выражения. Как объяснить вновь нанятому студенту работу уже написанного кода - это можно отдельную книжку писать.
- ггг, да на Джава фреймвёрках есть те же события, тольтко реализованны по индуски: в виде обсёрвера. Плавали, знаем. Про лямбды и делегаты пропущу: я своих джунов за пару дней приводил в чуйство и начинали они их использовать и понимать как миленькие. Чай не рокет саянс.
- Давай не разводить джава срач. Замечу только что всё выше упомянутое было выкинуто из джавы намерянно, как быдло-инструменты для написания быдло-кода (точнее, не ООП-кода). Даже не упомянутые тобой "дженерики" (по факту их нет - просто средство упрощения синтаксиса). Сколько я поднимал проектов на шарпе - везде, проблемы и глюки множились и росли на пустом месте именно из-за делегатов, и событий. Да ещё прибавились лямбды - они в этом плане даже хуже, чем в Перле регулярные выражения. Как объяснить вновь нанятому студенту работу уже написанного кода - это можно отдельную книжку писать.
Заебала эта ваша илитка: C++ не тру, Smalltalk тру. Блѣть, ойбидабида, C++ методы выставляет, а в малоговорящем, дескать, все объекты сообщения принимали. Так что ж вам, блѣть, мешает - объявите все методы private, да один публичный message(object *args) и будет все как в вашем маловраньёе. Баттхерт по множественному наследованию я тоже не понимаю - не нравится, ну так не юзай, хрен ли? Пинками тебя к этому принуждают? На плюсах пишут тонны говнокода - так и на этих ваших "прогрессивных" языках, начиная от Python и кончая Scala его написано никак не меньше (пропорционально). Проблема всегда не в языке, а в том, кто на нем пишет. Если руки из нужного места растут - можно и на C++ писать вполне красивый, лаконичный и поддерживаемый код. Можно (с новым стандартом) и в функциональном стиле, с лямбдами-замыканиями-рекурсиями писать, даже метапрограммирование через шаблоны изобразить можно, не слишком-то запарившись. Еще раз: говнокод - он не в языке, а в голове, и C++ позволяет писать код не хуже чем на этих ваших лиспах. Да - слабая типизация, да - указатели, прямое управление памятью (для некоторых это все еще зашквар - use C++.NET, Luke!) - но сделайте скидку на потребление ресурсов и все встанет на свои места. У языка есть своя ниша, оправданная вполне. А уж баттхерт в сторону решеток в принципе не понятен - все, что просили хомяки от всех стилей, Microsoft сделала - на тебе и generic, на тебе и лямбды, держи, дорогой Linq, держи P-code - все для тебя дорогой - так нет же, все равно упоротые будут хаять и материть просто потому что "Microsoft - значит зашквар".
- Коллега, давай я тебе объясню. Хороший ЯП помогает писать хороший код и мешает писать плохой. Кресты делают первое и совершенно игнорируют второе, потому что никогда, никогда, сцуко, ты не сможешь так наговнокодить на Шарпе, как на Крестах (даже если ансейф заюзаешь). А так то - да, можно и на чистом Си классическое ООП эмулировать (читай Макконела). Ты пойми, в большом проекте на одного тебя такого правильного найдётся 5 неправильных. И я долбал разбираться что там они навыдумывали со своими долбанными в рот указателями. Доступно?
- В таком ключе, согласен. Видимо мне, до сих пор, каким-то образом удавалось обходить места скопления совсем уж жутких быдлокодеров - с плюсами работал, в основном, по научной теме: моделирование физпроцессов и прочие числодробительные расчеты, где внизу голый C + CUDA, а сверху оболочка, обычно, на QT, потому как под линукс более сносной альтернативы нет. Однажды даже довелось писать клиент-сервера на C++ где сбоку был припаян все тот же kernel на CUDA. А вот работая на шарпе, я такого говнокода насмотрелся, что до сих пор по ночам в холодном поту просыпаюсь, хотя сам по себе шарп как язык мне любивен и прельстив. Поэтому, я твердо утвердился во мнении, что не язык виноват в говнокоде, а руки которые его держат. ЗЫ: Самая большая проблема в том, что до этого долбаного кризиса я был волен послать работодателя с такими проектами в известном направлении, а нынче за МКАДом моя зп в 60к считается оудытельно божественной и нигде мне больше такого не дадут. Как же заебало жрать этот кактус...
Сравнение языков не корректное. Обсуждать нечего
Исторически так сложилось[править]
Кстати, такое явление есть уже давно. Не то чтобы сам дуднет так уж объективно плох, но движуха максимум зашкварная. Исторически так сложилось, что в дотнет попадают самые безыдейные дауны, которых чисто течением занесло и которые после минимальных психологических манипуляций будут делать всё, что от них захочешь — вплоть до того, чтобы взять кредит и купить квартиру/машину, коллективно начать увлекаться видом спорта, который зафорсит менеджент, коллективно ездить на отпуск в поход туда, куда скажет менеджмент, коллективно переехать жить в другую страну и тд. Короче, быдло в самом классическом смысле этого слова. Люди хоть с малейшим кругозором и претензией на самостоятельные решения этого мирка избегают.
- Описание подходит к любой более-менее популярной технологии. К тому же Хаскелю тоже подходит, коий давно уже изучают не для себя, а чтоб показывать всем в онлайне, что ты это сделал. Чтоб всё как у людей, удо-мое, не то, что у этих.
- В гаскiле там монады. А их нужно распаковывать, перепаковывать, мапать, лифтить. Если это надо сделать пару раз, это фигня мелочь, но если у тебя по всей программе примерно в каждой строке по такой мелочи — все вместе они суммируются в большой БПЦ. Представь, что ты бегаешь вокруг стадиона. А теперь представь, что там местами раскидан какой-то мусор, шкурки из-под бананов, бутылки, и тебе периодически приходится прикладывать чуточку больше усилий чтобы их переступать. Это уже здорово сбивает, твоё внимание переключается на эти мелочи, непрерывная размеренная пульсация превращается в ломаный ритм. А теперь представь что там всё науд блѣть завалено всяким говном и мусором и тебе приходится целиться куда поставить ногу буквально на каждом шагу. Вот это и есть гаскiль с его злоебучими монадами.
- Толстота. Но Порядка ради таки поинтересуюсь, а каких решений не избегают нормальные в твоём понимании люди?
Кстати, такое явление есть уже давно. Не то чтобы сам свифт так уж объективно плох, но движуха максимум зашкварная. Исторически так сложилось, что в свифт попадают самые безыдейные дауны, которых чисто течением занесло и которые после минимальных психологических манипуляций будут делать всё, что от них захочешь — вплоть до того, чтобы взять кредит и купить квартиру/машину, коллективно начать увлекаться видом спорта, который зафорсит менеджент, коллективно ездить на отпуск в поход туда, куда скажет менеджмент, коллективно переехать жить в другую страну и тд. Короче, быдло в самом классическом смысле этого слова. Люди хоть с малейшим кругозором и претензией на самостоятельные решения этого мирка избегают.
- Кстати, намного убедительней по Свифту прошлись [nruwasm/article/533 тут]
Свершилось[править]
> Xamarin Studio Community > FREE На тех же условиях, что и Студия.
Мало того, [ncommspoweruser/build-2016-microsoft-open-sources-xamarin-runtime/ Microsoft open sources Xamarin runtime], и даже [ncommspoweruser/build-2016-xamarin-to-bring-an-ios-emulator-for-windows/ to bring an iOS emulator for Windows]
- xamarin разработала mono, а mono и так опенсоурсная была. Где подвох?
- Готовое решение для мобилок было очень платное.
- Очень платное (500 баксов за среднюю комплектацию и 1000 за нормальный модуль к Visual Studio) и, при этом, адово багованное и криво реализованное. Хотелось бы верить, что Microsoft сумеет привести этот бардак к человеческому виду. В текущем виде это тянет только на бета-версию. И Мигеля, который столько бабла за это просил, очень хотелось пристрелить.
- Готовое решение для мобилок было очень платное.