metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-21 05:55 am

Зло какое-то

Школьный Линукс и входной порог разработки

Борландовские Паскали, С и тому подобное работали под досом без плясок с бубном и ставились простым копированием.
Дельфи в 1997 году поставилась на 95 винду и заработала сразу. За день можно написать прототип DB приложения, вообще видя среду разработки в первый раз. Visual C в то же примерно время - то же самое, разве что писать чуть сложнее, это вам не RAD.
Вижуал студия с дотнетом в 2006 вроде бы году - аналогично, поставил, за день разобрался.

А в линуксе до сих пор какое-то вуду, стоит только выйти за рамки стандартных задач.

[identity profile] theiced.livejournal.com 2010-08-21 08:46 am (UTC)(link)
чем именно хороши? наибугоейший редактор кода, хуже только нотепад от того же производителя. пизданутейший редактор опций проекта, спроектированный и запрограммированный жопорукими индусами. если таргетов у вас, например, писят, вы там сдохнете редактирую опции. редактор уи на уровне середины прошлого века, до любого нормального (designer, glade) ему срать и срать. при этом писать уи кодом два раза заебёшься. всё это жрёт опиздинеть сколько памяти и тормозит на топовых вокстэйшнах и умеет делать только виндопроги (которые на более другие платформы - как то линупс и говномакось портировать заебёшься уже три раза). не не не.

[identity profile] hshhhhh.livejournal.com 2010-08-21 09:31 am (UTC)(link)
зря вы так про виндовой нотепад: с винХР там появился шоткат на сохранение и им теперь даже можно пару раз пользоваться!

[identity profile] denisioru.livejournal.com 2010-08-21 09:37 am (UTC)(link)
Попробую ответить в том же стиле: все IDE под линуксы ебанистически уебищны, глюкало пиздец, хоть в vi пиши, UI компонентов на уровне 96-года, херова туча вуду для чеголибо шаг-в-сторону, при этом глючит не стесняясь каждый раз на новый лад на разных ОС. Копаться в текстовых конфигах коих как говна и все друг от друга зависят. Все попытки выяснить что либо в коммунити сводятся к "почитай мануал", потому что разбираться ЧТО именно не так на ТВОЕЙ сборке под ТВОЮ платформу и на ТВОЕЙ версии 1.24.473.632.88.stable.beta4.2.144 никто не будет.

[identity profile] theiced.livejournal.com 2010-08-21 09:47 am (UTC)(link)
пиздите хуйню. emacs охуенен. в vimе тоже вполне можно девелопить. UI - Qt, GTK+ - на выбор - современные, охуенно выглядящие и удобные в использовании интерфейсы, шаг в сторону - всё ок (в отличие от виндовза), если что то глючит, то грамотный вопрос коммьюнити (а то и авторам! - например неоднократно прояснял некоторые тонкие моменты руби с матзом).

[identity profile] denisioru.livejournal.com 2010-08-21 09:55 am (UTC)(link)
Расскажи, что у emacs с интегрированной отладкой. Могу ли я пошагово пройти с клиентского кода, который выполняет запрос к веб-сервису, потом зайти в вебсервис (код на сервере), посмотреть стек, содержимое переменных, поставить пару контрольных точек (в коде на сервере), дождаться их срабатывания и посмотреть что возвращается, а потом вернуться в клиентский код и продолжить там?

Сие можно делать на 99% одинаково и на asp.net, и на winforms + webservices, и на Silverlight/WPF + WCF-сервисы. Тоесть - разные платформы - десктоп, тонкий веб-клиент, rich apps.

[identity profile] theiced.livejournal.com 2010-08-21 10:05 am (UTC)(link)
честно скажу - я гдб только пару раз видел. ещё раз для тупых - в простейших случаях отладка-отладчиком тупо снизит мою производительность (и производительность любого грамотного спеца). однопотоковый вебсервис он брякпоинтами отлаживает блядь, достижение. в сложных ака обычных случаях вы отладчиком вообще нихуя никак не сделаете, принципиально. ну например - почти-RT софтина (задержка с ответом в 200ms уже пиздец) работающаю в сотню потоков в релизном и только релизном билде пару раз в день встаёт раком на 2000ms. расскажите как глубого в жёппу вы себе засунете ваш отладчик и прочие красивые гуёвые тулзы что бы отловить данную проблему?

[identity profile] theiced.livejournal.com 2010-08-21 10:20 am (UTC)(link)
ах да, есличо, я вот это проблему решал не далее чем позавчера. решил. вдумчивое чтение кода, включая код сторонних библиотек, грамотная расстоновка функций логирования, в том числе и в сторонних библиотеках, внимательный просмотр логов. для решения данной задачи был использован _исключительно_ емакс.

[identity profile] denisioru.livejournal.com 2010-08-21 10:35 am (UTC)(link)
Ах, функции логирования! Конечно, как я мог забыть про printf :)))))) Это же передовые средства отладки, можно даже слоган придумать "printf в отладке: 20 лет на рынке. Выбери стабильность." :)))

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 10:53 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 11:04 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:10 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 11:11 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:18 (UTC) - Expand

[identity profile] denisioru.livejournal.com 2010-08-21 10:33 am (UTC)(link)
Ты не в курсе, что внутри метода веб-сервиса может быть стартовать несколько потоков для обработки чего-либо? Ах, gdb... Тоесть у emacs никакой интегрированной отладки нет :) Понятно.

[identity profile] theiced.livejournal.com 2010-08-21 10:47 am (UTC)(link)
хоть один, хоть три, хоть сто. если один-три - отладчик не нужен, если сто - отладчик засовывайте себе в жопу.
я же написал - есть gdb и gdm-mode. http://www.emacswiki.org/emacs/GDB-MI

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 10:50 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 10:55 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 11:00 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:07 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 11:11 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:17 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2010-08-21 11:18 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:21 (UTC) - Expand

(no subject)

[identity profile] lastwalrus.livejournal.com - 2010-08-21 13:07 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 13:09 (UTC) - Expand

[identity profile] denisioru.livejournal.com 2010-08-21 09:41 am (UTC)(link)
Вот к примеру маленькая верхушка айсберга: Parallel Threads

Что надо сделать, чтобы emacs показал что либо похожее?

[identity profile] theiced.livejournal.com 2010-08-21 09:51 am (UTC)(link)
ааа, терь виден ваш скилл. понимаете в чём беда, в простейших случаях всё отлаживается и без этих костылей (да и серьёзных проблем быть то и не может), в нормальных случаях (ака пара сотен тредов), ваши гуёвые говнодебаггеры вам помогут так же как и поход в настоящую православнутую церковь.

PS. ну и справедливости ради - гдб (к коему есть отличная морда для емаксов) всё это умеет искаропки.

[identity profile] denisioru.livejournal.com 2010-08-21 10:46 am (UTC)(link)
Между простейшими случаями в один поток и "нормальными" в пары сотни - есть масса вещей, которые встречаются в реальной жизни, но явно отсутствуют в Вашем воображении ;)

[identity profile] theiced.livejournal.com 2010-08-21 10:49 am (UTC)(link)
для альтернативно одарённых, есть сложные случае - когда отладчиком нельзя _в_принципе_ сделать ничего. остальные случаи - они простейшие и решаются быстрее без отладчика. если я не прав - пожалуйста контрпример "среднего" случая который можно круто и быстро решить отладчиком.

[identity profile] denisioru.livejournal.com 2010-08-21 10:56 am (UTC)(link)
ок, есть REST-сервис, который ждет изменения состояния неких приборов. Как правило, юзер одновременно мониторит до 10-20 приборов. В некоторых случаях есть условия, при которых изменения надо игнорировать. Условия мониторинга меняются юзером во время ожидания изменения состояний приборов. Хочется поставить контрольную точку и посмотреть ряд параметров в одном из потоков мониторинга, которые получаются при совпадении некоторых условий. А также знать, откуда ноги растут у условий.

[identity profile] theiced.livejournal.com 2010-08-21 11:07 am (UTC)(link)
см. ответ на пост ниже.

[identity profile] metaclass.livejournal.com 2010-08-21 10:56 am (UTC)(link)
Работа в одном потоке в гуишной проге с неебическими структурами данных. Их визуализировать в лог и потом анализировать заебешся, если честно. Это еще хорошо, когда у них встроенные методы дампа есть, но без этого - проще запустить в VS и посмотреть на значение переменной (оно из ее типа автоматом делает гуишный дампер хитрый).

Еще один вариант: когда для отладки логами нужно поставить вызовов этих логов десять штук, но на один раз - быстрее запустится под отладчиком.

И еще - если нужно отследить стек вызовов какого-то метода, а в рунтайме этот стек недоступен. Слава богу, в дотнете такого не бывает, а вот в дельфях и еще где-то - только отладчик, безальтернативно, стек вызовов в лог вывести невозможно.

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:03 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 11:16 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:25 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 11:28 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:36 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 11:41 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:59 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 12:07 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 12:11 (UTC) - Expand

(no subject)

[identity profile] w00dy.livejournal.com - 2010-08-21 13:02 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 13:05 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:41 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 11:47 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 12:00 (UTC) - Expand

(no subject)

[identity profile] fi_mihej.livejournal.com - 2010-08-21 18:01 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 18:04 (UTC) - Expand

(no subject)

[identity profile] fi_mihej.livejournal.com - 2010-08-21 18:28 (UTC) - Expand

(no subject)

[identity profile] fi_mihej.livejournal.com - 2010-08-21 18:38 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 18:48 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 11:28 (UTC) - Expand

[identity profile] thedeemon.livejournal.com 2010-08-21 07:10 pm (UTC)(link)
>в нормальных случаях (ака пара сотен тредов)

Это нормальный случай только для индусов низшей касты. Пример однозначно плохого дизайна.

[identity profile] theiced.livejournal.com 2010-08-21 07:11 pm (UTC)(link)
буа-ха-ха. не - если вы хелловолы пишете, то да.

[identity profile] thedeemon.livejournal.com 2010-08-21 07:33 pm (UTC)(link)
У вас на одной машине пара сотен ядер? Нет? Тогда сотни тредов только жрут ресурсы и мешают друг другу. Несколько потоков + асинхронные операции эффективней, только это ж думать надо, порождать треды проще конечно.

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 19:35 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2010-08-21 19:41 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 19:43 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2010-08-21 19:48 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2010-08-21 19:51 (UTC) - Expand

(no subject)

[identity profile] w00dy.livejournal.com - 2010-08-21 20:17 (UTC) - Expand

(no subject)

[identity profile] w00dy.livejournal.com - 2010-08-21 20:16 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2010-08-22 06:22 (UTC) - Expand

[identity profile] w00dy.livejournal.com 2010-08-21 12:35 pm (UTC)(link)
> умеет делать только виндопроги

Вообще-то что прикрутишь, то и будет уметь. SDK есть для wince, winmo (5-7, arm), xbox 360 (ppc), zune, .net mf (это эмбедедщина). Так шо харе тут писькой махать, матчасть учи.

[identity profile] theiced.livejournal.com 2010-08-21 12:47 pm (UTC)(link)
ага. а можно и гцц с кросскомпайлером прикрутить и собирать проги под линукс. вспоминается знаменитое http://s.lurkmore.ru/images/2/21/Linux_doma.jpg

[identity profile] w00dy.livejournal.com 2010-08-21 01:02 pm (UTC)(link)
и? Для разработки под те девайсы что я написал достаточно взять студию (подойдёт даже express) и скачать бесплатный sdk с сайта ms. Ну и девайс желательно иметь, правда в некоторых sdk есть эмуляторы. В итоге получаем полную поддержку, с возможностью деплоймента и отладки прямо на девайсе из студии. Ваш линупс так может?

[identity profile] theiced.livejournal.com 2010-08-21 01:07 pm (UTC)(link)
(как будто я под выньмобайл не писал). там беда что как только мы отходим от хелловолда из эмулятора начинают ползти пушистые усеницы (тм).

[identity profile] w00dy.livejournal.com 2010-08-21 01:27 pm (UTC)(link)
а зачем вам эмулятор, если девайс стоит смешные деньги? Я когда писал, то мне сразу и девайс дали, под которым это всё работать будет и всё такое.

(no subject)

[identity profile] theiced.livejournal.com - 2010-08-21 13:31 (UTC) - Expand