[*nix]Посоветуйте, какой язык изучать?
геймдевГеймдев не только самая интересная, но и самая дешёвая область разработки. Lua сам по себе бесполезен, геймдеву интересно его сочетание с Си++ (luabind FTW).
Perl
пистон
Опять же, есть широко распостранённый PerlПерл умер. RIP.
есть http://luaforge.net/projects/wxlua/ , не Qt, но все же.
питон [...] редко используется при разработке в РоссииИменно в России? У тебя есть какая-то статистика, или так, на глаз?
Насчет твоих сомнений насчет чтения и количества библиотек, тебе стоило посетить конференцию HighLoad, где выступал Tim Bunce и вкратце развеял эти и другие мифы про Perl.
Вкратце насчет читабельности: есть такая вещь как Perl Best Practices, где написано как правильно писать на языке Perl чтобы это потом было удобно читать. А если программу писать плохо, то ее будет неудобно читать на любом языке.
Насчет библиотек, есть perlQT, но он датирован 2003-ом годом, хотя есть куча GTK библиотек для Perl-а. Но, честно говоря, никогда не занимался разработкой графического интерфейса, а вот прикладных библиотек под Perl полным полно: тут тебе и различные сетевые протоколы, и подключения к разнообразным базам данных, и различные файловые форматы, и разнообразные системные библиотеки.
http://www.slideshare.net/Tim.Bunce/perl-myths-200909 ссылаюсь на 15-ый слайд.
Я не знаю, насколько Ежику интересны Google Trends, но если он ищет язык для работы, до Tim оперирует статистикой вакансий. И по ней Perl живее Python и Ruby.
Хорошо, опять же сошлюсь на Tim-а Bunce и на его доклад: Я не знаю, насколько Ежику интересны Google Trends, но если он ищет язык для работы, до Tim оперирует статистикой вакансий. И по ней Perl живее Python и Ruby.
Рассказываю.
Для начала определись, в какой отрасли ты хочешь работать. От этого во многом зависит, C++, J2EE, или PL/SQL какой-нибудь.
Если хочется работать в геймдеве - полный вперёд, только учти, что в России много не заработаешь (зайди на www.dtf.ru и убедись). Плюс забудь про Linux. (Я так понял речь об играх с большой буквы И, вроде Half Life, а не о casual-малютках.)
Мой совет - учи C++. Самый универсальный и успешный язык на сегодняшний день. После него выучишь любой другой, если возникнет необходимость. Чтобы освоить Lua, вообще достаточно спинного мозга.
Чтобы освоить С++ на отличном уровне, достаточно вдумчивого прочтения "Философии С++" (Thinking in C++) - отличная, достаточно простая для чтения книга. (Плюс опыт, конечно.) Я прочитал несколько книг (кроме Страуструпа) и в конце концов убедился, что Thinking in C++ вполне достаточно. Так что освоение С++ - вполне посильная задача, не дрейфь.
Не надо слушать тех, кто говорит, что perl мёртв. Это очень-очень плохой миф, который, как любое подобное утверждение, очень сложно опровергнуть, потому что оно стало мемом. Если perl и умрёт в конце концов, то из-за этих слухов, которые распускают те, кто толком perl не знают.
Биндингов к Qt у него, правда, в самом деле нет популярных, хотя кое-что все же есть. Для однострочников perl незаменим (при этом может заменить awk и sed). Для анализа текстов - тоже.
На perl best practices зацикливаться не обязательно, там много спорного. Но современный perl очень читаемый язык. На мой вкус - куда читаемее раскрученного python'а.
Из минусов - отсутствие нормально работающих тредов, хотя в 5.10 это побороли на уровне языка, косяки остались в отдельных библиотеках, и еще то, что непонятно, учить ли perl5, когда скоро выйдет perl6. Наверное, начинать все же надо с 5-го, он никуда не денется еще лет 10.
После него выучишь любой другой, если возникнет необходимость.Без него ты тоже выучишь любой другой, если возникнет необходимость.
Не надо слушать тех, кто говорит, что perl мёртв. Это очень-очень плохой миф...который придумали злые пришельцы, ага.
Фортран
---
"Рот фронт, группенфюрер..."
ООП ты уже знаешь, поботай ФЯП, вдруг вставит.
Ты вроде как в Рамблере работаешь, да? Открываем вакансии Рамблера: требуется Perl-программист, знание Perl-а стоит доп. требованием почти во всех вакансиях. Знание Python-а только как доп. требование для Perl-программиста.
Зайдем на вакансии Яндекса: требуется Perl программист, знание Perl-а как доп. требование на многих технических позициях.
Зайдем на вакансии Mail.ru: знание Perl или Python практически по всем техническим вакансиям.
Откроем какой-нить сайт с вакансиями о работе: http://hh.ru или http://jobs.ru и поищем по слову Perl. Количество вакансий достаточное, чтобы было из чего выбирать.
Теперь немного из своего опыта: сейчас я пишу программы для управления оборудованием Juniper. Библиотека для работы с этим оборудованием идет на двух языках программирования: C и Perl.
Еще немного от себя: в сентябре ходил на собеседование в Касперского. Там меня спрашивали насколько я хорошо знаю Perl.
Я не хочу сказать, что Perl — самый лучший язык для всего на свете. В web-программировании его уже давно потеснили другие языки, но в прикладном программировании и местами в системном Perl очень востребован и очень полезен.
Может ты с детства мечтал писать драйвера для устройств, тогда тебе стоит смотреть на C или ассемблер (может еще есть что-нить более подходящее, давно не следил за этой областью).
Или тебе так сильно нравится Lua, что готов ради него пойти на все. Тогда просто найди вакансию Lua-программиста и вперед, забей на все советы и предрассудки обывателей форума.
А может ты хочешь программировать для научных проектов? Тогда уже надо смотреть на Фортран, Lisp, Maple (первый и последний от меня хотели в аспирантурах, так что востребованность в них тоже есть). Хотя не уверен, насколько ты можешь помогать OSS сообществу.
Или ты хочешь писать web-приложения, тогда PHP ты уже знаешь, можно и на нем писать. Хотя Python и Ruby набирают популярность.
Ну или вдруг ты решишь заняться большими объемами данных, их обработкой, анализом. Тогда SQL тебе в помощь.
И не приведи господь тебя заняться бухгалтерией. Единственная туда дорога 1С, но это дорога проклята давно и на много лет вперед.
И не приведи господь тебя заняться бухгалтерией. Единственная туда дорога 1С, но это дорога проклята давно и на много лет вперед.
А что оно уже под *nix работает?
Действительно, 1С с nix-ами плохо соотносится. Опять же оговорюсь, что wine-ы и самба-шары я здесь не рассматриваю. И даже не хочу затрагивать вопрос где оно лучше работает.
Мораль была простая — если выбирать конкретный язык, то надо знать конкретные цели.
Сейчас я работаю в области компьютерной телефонии, голосовых сервисов, технологий генерации и распознавания речи, но это довольно узкая специализация... Правда, с предстоящим стартом 3G в Москве ситуация должна измениться, и область применения знаний должна будет расшириться, но я пока слабо себе представляю, что из языков в этой области может понадобиться...
p.s.
ради интереса зашел на сайт Центра Речевых Технологий, у них в технических вакансиях требуется или C++, или C#.
Пока ограничился выбором между C++, Perl и Python, хотя ещё мне безумно нравится Lua. Java не хочуА C#?
А C#?под *nix - есть компании, которые профессионально пишут на C#?
А C#?А гвозди?
ну тут как бы второе значительно ограничивает пространство поиска. Для первого пойдет и brainfuck, а для второго (чтобы найти работу здесь и сейчас) - скорее всего не более чем вышеназванные перл, питон, жаба и ц++.
Цели - двойные. Перое - писать что-нибудь для себя и, возможно, для OSS-сообщества. Второе - чтобы могло пригодиться в работе, в трудоустройстве.
Жабу ты не хочешь, ц++ убивает мозг (мое лично мнение, подтвержденное наблюдениями). С перлопитоном ситуация неднозначная. Выход перл6 грозит перлокапцом, с учетом существующего объема кода новый перл использовать не будут, и у языка нет перспективы развития. Питон кажется наиболее нормальным вариантом, но и с ним не все однозначно. Хотя, перл ботается быстро, и лет несколько с ним точно работу найдешь.
Из языков стройного замысла с ОКамлом вроде трудоустройство относительно легкое.
Ты вроде как в Рамблере работаешь, да?Уже нет.
Открываем вакансии Рамблера: требуется Perl-программист, знание Perl-а стоит доп. требованием почти во всех вакансиях. Знание Python-а только как доп. требование для Perl-программиста.
Можно списочек крутых веб-проектов от Рамблера?
Зайдем на вакансии Яндекса: требуется Perl программист, знание Perl-а как доп. требование на многих технических позициях.
Я на днях спрашивал у Бобука про языки разработки в Яндексе, он сказал что основной — С\С++, следующий — Python. Кому верить?
И кстати Бобук рассказывает про Перл то же что и я в этом треде.
Зайдем на вакансии Mail.ru: знание Perl или Python практически по всем техническим вакансиям.
в сентябре ходил на собеседование в Касперского. Там меня спрашивали насколько я хорошо знаю Perl.
Наше IT такое it
В общем как: если хочется работать не "здесь и сейчас", а и через пару лет, то Perl лучше не учить. Уже сейчас hr-ы пищат что перлопрограммисты редки, дороги и не особо квалифицированы.
редки, дороги и не особо квалифицированы.с точки зрения программиста это звучит как "незаменимы, высокооплачиваемы и не очень загружены"
В треде уже было слово "Кобол", если тебе нужен такой вариант.
Пока вообще склоняюсь к питону...
Может, ты сначала разберёшься, чем хочешь заниматься? А то может и латынь сойдёт?
Уже сейчас hr-ы пищат что перлопрограммисты редки, дороги и не особо квалифицированы.Кстати вот как раз вопрос о чем говорит статистика роста вакансий на перле — может программистов все тяжелее искать =)
Наверное, начинать все же надо с 5-го, он никуда не денется еще лет 10.Я бы даже за монументальный C++ на 10 лет не стал бы загадывать. А ты про *пятый* перл
Уже сейчас hr-ы пищат что перлопрограммисты редки, дороги и не особо квалифицированы.А остальные программисты часты, дешевы и высоко квалифицированы?
С проблемой квалификации я сталкиваюсь достаточно часто, хотя никакой не руководитель и не HR. Часто люди знают лишь какую-то малость и способны лишь повторить где-то увиденное или прочитанное. Но при этом они слабо ориентируются в технологиях и способах, поэтому не способны не то чтобы придумать что-то свое, но даже объяснить, почему они сделали так как сделали.
Причем это не обязательно Perl программисты: я встречал и разных программистов, и системных администраторов, и сетевых инженеров, и сборщиков компьютеров.
Так как на IT-шников мало где учат, а зарплаты в этом секторе неплохие, вот и получается, что заниматься IT стало много людей с низкой квалификацией.
В общем как: если хочется работать не "здесь и сейчас", а и через пару лет, то Perl лучше не учить. Уже сейчас hr-ы пищат что перлопрограммисты редки, дороги и не особо квалифицированы.Какие же ты идиотские советы даешь.
Технологии не важны, язык не важет. Важно знать хорошо и уметь писать, уметь придумывать. А на чем — разницы нет.
Хорошо знаешь перл? Пиши на перле, а популярность значения не имеет. Ты её же создавать будет.
Хорошо знаешь перл? Пиши на перле, а популярность значения не имеет. Ты её же создавать будет.Спасибо, плавали.
Пока ты будешь наступать на грабли в библиотеках и писать библиотеки самостоятельно:
I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.
Когда года три назад мне надо было написать программу, которая по telnet-у обходила некоторые устройства, собирала бы с них информацию и дальше как-то обрабатывала, я начал писать ее на Python-е (было интересно попробовать новый для меня язык).
Я нашел библиотеку для работы с telnet-ом в Питоне, но я потратил пару дней на написание патчей для нее, прежде чем она у меня заработала. И обидно даже, что ошибки были больше такого плана, что в одном месте используется шаблон, который можно передать в функцию, а несколькими строчками ниже для аналогичных целей какая-то жестко закодированная строка.
После того, как я пропатчил библиотеку, дописал программу до конца, и начал натыкаться на ошибки в библиотеке для работы с Postgres-ом, я отложил Python в сторону и часа за четыре переписал все на Perl.
Когда года три назад мне надо было написать программу, которая по telnet-у обходила некоторые устройства, собирала бы с них информацию и дальше как-то обрабатывалаДля таких вещей очень рулит Tcl и Expect.
Вообще, в том, что касается работы с сокетами, процессами (через пайпы текстовыми файлами, python ИМХО показывает себя довольно низкоуровневым языком.
Я на днях спрашивал у Бобука про языки разработки в Яндексе, он сказал что основной — С\С++, следующий — Python. Кому верить?Бобук предвзято относится к Перлу. У Яндекса достаточно на нем проектов, включая выдачу поиска.
И кстати Бобук рассказывает про Перл то же что и я в этом треде.
I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.Ну вот тебе 3 стрипа про perl с того же xkcd. Третий свежее того, который про питон
Я, впрочем, не спорю, что perl теряет популярность. Но, во-первых, не из-за качества языка, а из-за этих дурацких мифов, основанных на коде десятилетней давности, а во-вторых, на количестве хороших библиотек это пока никак не сказывается.
под *nix - есть компании, которые профессионально пишут на C#?Что значит "под *nix"?
Первое, что пришло в голову (что мы сами используем; правда, не C#, но тем не менее) - FogBugz, кроссплатформенное ASP.NET приложение, почти официально ("FogBugz 7 for Unix is not yet available, but coming soon. It will run on recent versions of CentOS, Fedora Core, Red Hat Enterprise Linux, Debian, and Ubuntu.") поддерживается под линуксом, где у нас и работает.
The fact is that Perl is actually quite a good functional language.Хороший мультипарадигменный язык, с до сих пор непревзойденными регэкспами... странно было бы думать, что он умирает)
Что значит "под *nix"?под mono
под monofogbugz у нас именно под моно и работает.
ну в цитате все-таки функциональный, а не мультипарадигменный. и это тоже наглая ложь. в нем только элементы функциональности. даже лисп нельзя назвать функциональным.
Фанатам хаскелла и лиспа тоже стоило бы обратить свой взгляд на перл Цитата из туториала по ocaml'у:
В ответ на:
The fact is that Perl is actually quite a good functional language.
Хороший мультипарадигменный язык, с до сих пор непревзойденными регэкспами... странно было бы думать, что он умирает)
регекспы непревзойденные, но точно такие же реализованы в виде библиотек (pcre) к большому количеству языков.
он не умирает, у него перспективы развития нет.
а фанатам лиспа/хаскелла никакой перл не нужен, ибо они считают лисп/хаскелл вершиной языкостроения
Ну или если говорить про perl5, то Moose, который изменил весь код на перле за последние пару лет до неузнаваемости.
Или POE, тоже свежий проект.
Кстати, а у каких языков эта перспектива развития есть? У Python, наверное, разработчики которого долго трудились и наконец выпустили python 3000, в котором самое заметное изменение - это то, что после print надо ставить круглые скобки.
даже лисп нельзя назвать функциональным.По какой же причине?
Кстати, а у каких языков эта перспектива развития есть?[lisp_fan_mode]
Ну например, lisp. За 50 лет он ни разу не устарел, т.к может все, что умеют сегодня другие языки. При том, что стандарт common lisp существует в неизменном виде с 1994 года.
[/lisp_fan_mode]
Ничего не имею против lisp'а, потому что почти ничего про него не знаю.
разве в нем нет побочных эффектов?
По какой же причине?
а функции высших порядков и элементы лямбда-исчисления уже много где есть
[troll]
Так перспектива развития или "нам и так хорошо"?
там metaobject protocol и истинные макросы => ему не нужно развиваться, т.к. он заранее умеет все, что можно придумать.
[/troll]
в сравнении с другими языками это можно считать развитием
разве в нем нет побочных эффектов?А они как-то мешают функциональности?
Да, есть еще Pure Lisp.
PS: Не спора ради, уже ясно, что я здесь никого не убежду ни в чем, но все же - Meta Object Protocol и расширяемость языка в Perl 5.
по поводу семантики.
в sicp описан интерпретатор scheme в вычислением аргументов call-by-name (ленивым). Я недавно писал интерпретатор scheme, который умеет работать одновременно с call-by-value (аппликативно call-by-name (в т.ч. с мемоизацией call-by-reference (по ссылке, как в паскале и все это в динамическом или лексическом окружении %)
Добавление этих возможностей заняло что-то порядка 30 строчек кода.
вот это называется расширяемость.
ну как бы да.
А они как-то мешают функциональности?
Да, есть еще Pure Lisp.
Специально зашел в английскую википедию, хотя не особо ей доваряю.
Purely functional functions (or expressions) have no memory or I/O side effectsстрого функциональных языков не так уж много, на самом деле.
Например, кто-то делает заказ в магазине, с него списываются деньги - сайд-эффект, информация о заказе добавляется в базу - сайд-эффект, пользователю приходит уведомление о заказе - сайд-эффект; да даже сам факт обмена денег на товар - уже сайд-эффект.
в твоей постановке вопроса написание программ в функциональном стиле вообще невозможно. спроси у хаскеллщиков, почему этой ложки нет.
это противоречит традиционным представлениям. к томуже твою задачу в нашей реальности все-таки быстрее сделать на пхп.
обычным ежедневным задачамреально сочувствую, если для тебя это ежедневные задачи
в твоей постановке вопроса написание программ в функциональном стиле вообще невозможно.Процессорные такты - это что-то уже не такое явное, так что написание программ в функциональном стиле вполне возможно - например, программы, по n выдающей n-е простое число.
На ФЯПах компиляторы писать удобно.
синтаксические анализаторы или именно компиляторы?
Добавление этих возможностей заняло что-то порядка 30 строчек кода.А длины какой?
тоже не хочу переубеждать, но лисповые макросы позволяют добавить любые мыслимые и немыслимые конструкции. например, элементы синтаксиса того же перла.
а для коммерческого языка программирования это хорошо?
При том, что стандарт common lisp существует в неизменном виде с 1994 года.Угу, сначала в стандарт запихали огромную кучу мусора, а потом радуются что его не надо менять.
Да, Лисп умеет все, только: под него нет библиотек, глюкавые компиляторы, замусоренный синтаксис.
Как красивый язык "для души" тогда уж лучше Scheme, а для коммерческой разработки не годится ни один.
Что-то на входе, что-то на выходе.
Получили, что ты гонишь.
Программа, обслуживающая клиентов интернет-магазина и принимающая у них заказы - имеет "внешние" состояния и сайд-эффекты.
Программа, что-то считающая, в большинстве случаев ни состояний, ни сайд-эффектов не имеет.
не больше 80 символов :!
А длины какой?
а для коммерческого языка программирования это хорошо?common lisp очень редко
а для коммерческого языка программирования это хорошо?Ну, про макросы вообще сказано [в On Lisp по-моему]: "Можете не использовать макросы — не используйте"
под него нет библиотекНу так-таки и нет.
Ну так-таки и нет.Ты знаешь про Лисп что-то, чего не знаю я?
Я около года писал на нем коммерческий продукт и еще около года сидел рядом с теми кто писал на нем коммерческий продукт.
Ты знаешь про Лисп что-то, чего не знаю я?Возможно.
вот тебе тонна кода
под него нет библиотек
если лениво это читать, хотя бы сюда зайди.
ты говоришь, что некоторое время писал коммерческий проект на common lisp и даже видел людей, которые делали то же самое. тот проект, насколько я понял, провалился, и ты хочешь винить в этом язык, на котором писал. Но яйца хорошему танцору мешать не должны.
а про синтаксис вообще жесть, ибо:
* "синтаксис" в лиспе - это только открывающая и закрывающая скобочки
* строго говоря, синтаксиса в лиспе нет, равно как и кода. Программа на лиспе - это данные, точно такие же, как xml.
Программа, обслуживающая клиентов интернет-магазина и принимающая у них заказы - имеет "внешние" состояния и сайд-эффекты.Программа, что-то считающая, в большинстве случаев ни состояний, ни сайд-эффектов не имеет.А какая разница, просто есть 2 "входа-выхода": веб-морда и база данных.
А какая разница, просто есть 2 "входа-выхода": веб-морда и база данныхНу имхо всё-таки разные вещи, когда тебе дают пачку данных на входе, ты их обрабатываешь и выдаёшь пачку данных на выходе, или когда тебе дают какой-то интерфейс для получения/изменения данных и ты им пользуешься.
В базу-то писать кто будет, пушкин? А в чистом функциональном языке функции записи в базу быть не может, потому что это функция с сайд-эффектами.
С этой точки зрения, у русского языка синтаксиса тоже нет,
потому что это всего лишь около десятка знаков препинания.
> строго говоря, синтаксиса в лиспе нет, равно как и кода.
Ты циклы как пишешь?
> Программа на лиспе - это данные, точно такие же, как xml.
Defined as: (DEFSETF FIRST . #<compiled-function 083b8740>)
---
...Я работаю антинаучным аферистом...
> потому что это функция с сайд-эффектами.
Чудо, нет никаких сторонних эффектов, функция отображает пару
"база данных --- запрос" в пару "база данных --- ответ".
---
"Расширь своё сознание!"
Чудо, нет никаких сторонних эффектов, функция отображает паруага, и эту пару нужно каждый раз передавать во вложенные функции, если им тоже нужна база. Тебе не кажется, что так писать было бы крайне неудобно?
"база данных --- запрос" в пару "база данных --- ответ".
ну это прям хождение по мукам
ага, и эту пару нужно каждый раз передавать во вложенные функции, если им тоже нужна база. Тебе не кажется, что так писать было бы крайне неудобно?Для этого и придуманы монады, стрелки и прочие подобные вещи. Чтобы было удобнее писать.
> функции, если им тоже нужна база.
А в чём, собственно, проблема?
> Тебе не кажется, что так писать было бы крайне неудобно?
Нисколько.
---
"Narrowness of experience leads to narrowness of imagination."
между прочим, об этом даже в OnLisp было написано, и еще где-то.
С этой точки зрения, у русского языка синтаксиса тоже нет,
потому что это всего лишь около десятка знаков препинания.
Как бы xml- и lisp-представления данных полностью идентичны.
Напиши любой пример кода на xml, и я переведу ее на lisp.
Да он вообще сейчас по dev'у конкретно загулял
>> потому что это всего лишь около десятка знаков препинания.
> между прочим, об этом даже в OnLisp было написано, и еще где-то.
Между прочим, это не придаёт утверждению вескости, так как
писатель "On Lisp" не является специалистом в языках.
> Как бы xml- и lisp-представления данных полностью идентичны.
> Напиши любой пример кода на xml, и я переведу ее на lisp.
То есть, у XML тоже нет синтаксиса?
Если ты узнал, что такое SXML, этим совсем не обязательно хвалиться.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
нет никаких сторонних эффектов, функция отображает паруМожет быть, ты прочитаешь мой пост?
"база данных --- запрос" в пару "база данных --- ответ".
функции записи в базу быть не может
ага, и эту пару нужно каждый раз передавать во вложенные функции, если им тоже нужна база. Тебе не кажется, что так писать было бы крайне неудобно?Дело не в этом, а в том, что "традиционные" БД немного не предназначены для схемы работы "вот сейчас мы всю эту БД засунем в приложение на входе, а на выходе получим новую версию БД и всё это положим обратно на винчестер".
Что делать, если, например, пока мы обрабатываем один запрос, придёт какой-то другой? Подождать, пока не завершится обработка первого? Как-то уныло выходит.
>> "база данных --- запрос" в пару "база данных --- ответ".
> Может быть, ты прочитаешь мой пост?
>>> функции записи в базу быть не может
Ты никогда не читаешь, что тебе пишут?
В базу никто не пишет, база возвращается как результат функции.
---
"Narrowness of experience leads to narrowness of imagination."
Ты никогда не читаешь, что тебе пишут?А ты читаешь, что тебе пишут?
p> функции записи в базу быть не может
Ещё раз, с чем именно ты не согласен в том утверждении?
---
"Три раза, Ганс, три раза. Запомни, Ганс: три раза."
> А ты читаешь, что тебе пишут?
p> функции записи в базу быть не может
Да, и я тебе ответил, могу ещё раз повторить: в базу никто НЕ ПИШЕТ.
Если ты ещё не понял, как это делается, поясняю: она --- ПЕРЕСОЗДАЁТСЯ.
И возвращается как результат пересоздания.
---
"Narrowness of experience leads to narrowness of imagination."
Теперь тебе нужны целых четыре раза? Без проблем:
p> функции записи в базу быть не может
Ты всё ещё несогласен с этим утверждением?
Если ты ещё не понял, как это делается, поясняю: она --- ПЕРЕСОЗДАЁТСЯ.И про это я тоже тут писал, правда, ответом не на твой пост.
И возвращается как результат пересоздания.
> Ты всё ещё несогласен с этим утверждением?
Да, несогласен. И я тебе уже объяснил, как это делается:
база --- ПЕРЕСОЗДАЁТСЯ и возвращается как результат.
Чудо, иди, прочитай что-нибудь про то, как это делается.
---
"МЕТАН --- ТОПЛИВО XXI ВЕКА"
И я тебе уже объяснил, как это делается:Где тут, по-твоему, запись в базу?
база --- ПЕРЕСОЗДАЁТСЯ и возвращается как результат.
Кстати, кто тебя научил не отвечать на пм?
>> база --- ПЕРЕСОЗДАЁТСЯ и возвращается как результат.
> Где тут, по-твоему, запись в базу?
Она зарыта на уровне реализации языка, в самом языке её нет.
---
"Narrowness of experience leads to narrowness of imagination."
Она зарыта на уровне реализации языка, в самом языке её нет.И не может быть - об этом я и говорю.
http://www.joelonsoftware.com/articles/GuerrillaInterviewing...
15 years of experience interviewing programmers has convinced me that the best programmers all have an easy aptitude for dealing with multiple levels of abstraction simultaneously.Вот ты в данном споре и не дотягиваешь, два уровня «языка» у тебя уже не укладываются в голове почему-то.
Попробуй, что ли, перечитать мои последние посты в этом треде (не только ответы КОНТРЕ).
Об этих самых.
Всем понятно, для чего существуют все эти типы с уникальностью объектов
и как оно сделано на реальных машинах.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
пацталом
все эти типы с уникальностью объектовЧего-чего?
Я уже совсем не могу уловить твою мысль, какое это отношение имеет к работе с базой?
> Чего-чего?
Они самые, которые из линейной логики.
> Я уже совсем не могу уловить твою мысль,
> какое это отношение имеет к работе с базой?
Прямое и непосредственное.
---
"Narrowness of experience leads to narrowness of imagination."
под него нет библиотек
Теоретически, если использовать clojure, то можно юзать джавовские библиотеки.
Только это уже совсем другой лисп (не совместимый ни с CL, ни со схемой, как я понял).
Не надо путать "чисто функциональный" и "функциональный".
Функциональные языки - это те, в которых функция является первоклассным значением (может быть передана как значение в функцию, возвращена из нее, помещена в структуру данных и т.п.). К сайд эффектам это отношение не имеет.
Чисто функциональные - оперирующие функциями в математическом смысле - которые не имеют сайд-эффектов и выдают детерминированный результат, зависящий только от аргументов и окружения.
Никогда не мог понять этого утверждения.
Почему в (list 1 2 3) нет синтаксиса, а в [1; 2; 3] есть?
Почему в (lambda (arg) (+ arg 1 нет синтаксиса, а в fun arg -> arg+1 есть?
Если я забуду скобки вокруг первого arg, не будет ли это синтаксической ошибкой?
Если в выражении перепутаю скобку и напишу (* 2 (+ 3 4 не будет ли это синтаксической ошибкой?
Имхо, в лиспе синтаксис есть, просто очень плохой.
Функциональные языки - это те, в которых функция является первоклассным значениемси тогда тоже подходит.
> си тогда тоже подходит.
В сях появились анонимные функции?
Их можно создавать на лету?
---
...Я работаю антинаучным аферистом...
В сях появились анонимные функции?я отвечал на пост
Их можно создавать на лету?
Функциональные языки - это те, в которых функция является первоклассным значением (может быть передана как значение в функцию, возвращена из нее, помещена в структуру данных и т.п.)указатель на функции всему этому удовлетворяет. Требования наличия анонимных функций там не было.
> Теоретически, если использовать clojure, то можно юзать джавовские библиотеки.
Чисто практически, под питон нет тех библиотек, которые мне нужны,
а те, что есть, используют... Common Lisp. Те же вещи, которые не
требуют Common Lisp, я могу делать и на других языках, питон для
этого не нужен.
---
...Я работаю антинаучным аферистом...
>> Их можно создавать на лету?
>>>> Функциональные языки - это те, в которых функция является первоклассным значением (может быть передана как
>>>> значение в функцию, возвращена из нее, помещена в структуру данных и т.п.)
> указатель на функции всему этому удовлетворяет.
Нет.
> Требования наличия анонимных функций там не было.
Ещё раз читаем: "в которых функция является первоклассным значением."
Это означает создание функций (в том числе анонимных) в _любом_
месте программы, а не только в глобальном контексте.
---
...Я работаю антинаучным аферистом...
переменные в паскале создаются только в заголовках. Что теперь они перестали быть первоклассными значениями?
> Что теперь они перестали быть первоклассными значениями?
Да, они никогда и не были.
---
"Расширь своё сознание!"
Всему этому указатели на функции удовлетворяют. Или ты полагаешь, что соответствующая статья в вики - это фейк?
> returned from a subroutine, or assigned into a variable.
> Всему этому указатели на функции удовлетворяют.
Указатель ещё не функция, а разговор идёт про функции.
> Или ты полагаешь, что соответствующая статья в вики - это фейк?
Статья в вики --- это ерунда, очень часто написанная студентом,
плохо разбирающемся в предмете. Как пример --- Vilfred_Sagen,
наш знакомый величайший знаток теории государства и права.
---
...Я работаю антинаучным аферистом...
>Их можно создавать на лету?
Эти не подходят:
boost lambda ?
Эсли под сями имеются в виду c++ конечно.
это уже c++. Про него и разговор не ведётся.
Понял, после того, как написал
Указатель ещё не функция, а разговор идёт про функции.указатель - это название, а сущность у него требуемая - передача функции, объекта, который может принимать параметры, и возвращать вычисленное значение. Указатель - это скорее термин, описывающий технологию, чем её суть. Вот в паскале значения могут передаваться по var, а в с - только через указатель. Но это же не значит, что в с не бывает никаких переменных. Так что твоя отмазка "не функция, а указатель" кажется мне надуманной.
> указатель - это название, а сущность у него требуемая -
> передача функции, объекта, который может принимать параметры,
> и возвращать вычисленное значение. Указатель - это скорее
> термин, описывающий технологию, чем её суть.
Указатель --- не название, а сущность. С указателем на функцию
нельзя работать иначе, чем как с присваиваемым типом, и одно
только это выводит функции во второй класс. Под первым классом
понимают не то, что функции можно присваивать, а то, что с
функциями можно работать так, как это были бы другие значения,
например, числа. Пример:
> (defun test (a b) (lambda (x) (funcall a (funcall b x 2
TEST
> (test '1+ '*)
#<bytecompiled-closure #<bytecompiled-function 08dd9bb8>>
> (funcall * 3)
7
> (funcall (test (lambda (l) (sort l '< 'list) 1)
(1 2)
> (funcall (test (lambda (l) (sort l '< 'list) 5)
(2 5)
> Вот в паскале значения могут передаваться по var,
> а в с - только через указатель. Но это же не значит,
> что в с не бывает никаких переменных.
Да, в си нет передачи параметров по ссылке, и ты хоть тресни,
она не появится, всё, что ты можешь сделать, это передавать
указатели руками.
> Так что твоя отмазка "не функция, а указатель" кажется мне надуманной.
Ты просто ни разу не работал с функциями, как объектами первого класса,
И с переменными --- тоже.
---
"Narrowness of experience leads to narrowness of imagination."
А пока я примерно понял, что ты хотел сказать, и буду продолжать спорить об определениях.
Вот твоё определение, возникшее, видимо, от глубокого знакомства с ФЯ:
что функции можно присваивать, а то, что сХорошо, я могу числа складывать и умножать. x=5;y=6;z=x+y. сделай мне, пожалуйста, тоже самое с функциями (Int->Int->Int) и (Int->(Int->Int сложи их. И назови язык, в котором у тебя это получилось, он и будет тем самым загадочным тру-функциональным языком.
функциями можно работать так, как это были бы другие значения,
например, числа
Приводить примеры на скобочках - это дурной тон, они плохочитаемы. Но я понял примерно, что ты имел в виду. Что для функций должен существовать оператор печати. Это бред. В c вообще ни для одного типа данных нет функции печати, она подключается дополнительной библиотекой и не относится к ядру языка.
Да, в си нет передачи параметров по ссылке, и ты хоть тресни,вот именно поэтому я утверждаю, что необходимость передавать функции через указатели (всего лишь способ записи) не отменяет сущность того, что через указатель передаётся, иначе весь язык с - абсурд, где бывают только указатели.
она не появится, всё, что ты можешь сделать, это передавать
указатели руками.
Ты просто ни разу не работал с функциями, как объектами первого класса,ага, они мне только снились
И с переменными --- тоже.
сделай мне, пожалуйста, тоже самое с функциями (Int->Int->Int) и (Int->(Int->Int сложи их.Не передергивай. Каждому типу своя операция. В сях ты можешь сложить два числа и передать результат в функцию, ждущую число в качестве параметра; можешь сконкатенировать две строки и передать функции, ждущей строку. Передать композицию двух функций функции, ждущей указатель на функцию, ты не можешь. Поэтому си не функциональный язык.
Почему в (list 1 2 3) нет синтаксиса, а в [1; 2; 3] есть?Кстати, неправильно возражаешь. В обеих строках в левой колонке написано одно и то же, а в правой - разные вещи.
Почему в (lambda (arg) (+ arg 1 нет синтаксиса, а в fun arg -> arg+1 есть?
Передать композицию двух функций функцииесли включить это требование в определение димона, то ты прав. Хотя ничто не мешает создать более сложную конструкцию, инкапсулирющую требуемую логику
ничто не мешает создать более сложную конструкцию, инкапсулирющую требуемую логикуну да, никто же не говорит, что невозможно написать компилятор ФЯ на C.
> сделай мне, пожалуйста, тоже самое с функциями (Int->Int->Int)
> и (Int->(Int->Int сложи их.
(1) -> )compile fcf
(1) -> f(n:Integer): (Integer->Integer) == (p +-> p+n)
Function declaration f : Integer -> (Integer -> Integer) has been
added to workspace.
Type: Void
(2) -> f + f
Compiling function f with type Integer -> (Integer -> Integer)
(2) theMap(TEST;+;3M;1!1,827)
Type: (Integer -> (Integer -> Integer
(3) -> f+f45)
(3) 18
Type: PositiveInteger
(4) -> )sys cat fcf.spad
)abbrev package TEST Test
Test(D : AbelianGroup): with
"+" : (D->(D->D D->(D->D -> (D->(D->D
== add
(f: D->(D->D + (g: D->(D->D ==
(x +-> (y +-> f(xy + g(xy
> И назови язык, в котором у тебя это получилось,
> он и будет тем самым загадочным тру-функциональным языком.
SPAD.
---
"Narrowness of experience leads to narrowness of imagination."
(4) -> Integer -> Integer -> Integer
(4) (Integer -> (Integer -> Integer
Type: Domain
(5) -> Integer -> (Integer -> Integer)
(5) (Integer -> (Integer -> Integer
Type: Domain
---
"...Мелочи меня не интересуют."
In computer science, a programming language is said to support first-class functions (or function literals) if it treats functions as first-class objects. Specifically, this means that the language supports constructing new functions during the execution of a program, storing them in data structures, passing them as arguments to other functions, and returning them as the values of other functions.
http://en.wikipedia.org/wiki/First-class_function
Наверно, мое определение стоит сформулировать как "функциональный язык - поддерживающий первоклассные функции".
В Си можно в некоторых пределах оперировать функциями как значениями, но только константами. Если бы можно было создавать новые значения, то можно было и функциональным его назвать.
Я бы сказал, ключевыми операциями над функциями, наличие которых выводит функции в статус полноценных сущностей, являются следующие:
композиция, специализация (можно рассматривать как порождение замыканий конструирование базовых функций (например, в си нет функции +, её можно только промоделировать, самостоятельно написав функцию add).
Не нравится --- не ешь.
Лично мне нравится, когда из матрицы создаётся генератор
функционалов, причём система сама определяет, поверх какого
поля оно работает.
> Тот факт, что в какой-то узкоспециализированной системе
> символом + определена (далеко не общепринятым образом)
> некоторая операция над функциями, не означает, что ты можешь
> их сложить две функции.
На практике используются евклидовы пространства, в которых
векторами выступают функции, соответственно, эти функции
можно складывать и даже --- о ужас-
"Курс истинно физической химии"
С твоей позицией в целом я согласен, а вот пример нелепый. Тот факт, что в какой-то узкоспециализированной системе символом + определена (далеко не общепринятым образом) некоторая операция над функциями, не означает, что ты можешь их сложить две функции.Я бы поспорил со словами "далеко не общепринятым". Если на области значений определена операция +, она может быть перенесена на множество функций, так часто делают.
>векторами выступают функции, соответственно, эти функции
>можно складывать и даже --- о ужас!--- перемножать.
>Это должен знать любой химик, доучившийся до четвёртого курса,
>а продвинутому химику это известно со второго курса.
Что понимаентся у химиков под перемножением векторов в евклидовом пространстве?
---
"Математик может говорить, что ему хочется,
но физик должен, хотя бы в какой-то мере, быть в здравом рассудке."
Я не сомневаюсь, что это может быть удобно. Просто сложение функций как элементов линейного пространства слабо связано с вопросом о first-class-ности функций.
> Просто сложение функций как элементов линейного пространства
> слабо связано с вопросом о first-class-ности функций.
Как иначе ты собираешься складывать функции, если их невозможно складывать?
Симулировать внутренний интерпретатор?
---
"Those who don't know Lisp are condemned to reinvent it, poorly."
Почему я вообще должен их складывать? Как уже писали, от функций как от типа данных требуется поддержка других операций, типа композиции.
Если ты спрашиваешь, какие ещё бывают способы определить сложение функций естественно, вот например такой. Сложение типов - это копроизведение, дизъюнктивное объединение (data A+B = Left A | Right B). Оно распространяется на функции следующим образом:
+ :: (A->B)->(C->D) -> A+C)->(B+D
(f+g) (Left a) = Left (f a)
(f+g) (Right c) = Right (g c)
> Симулировать внутренний интерпретатор?
Не понял.
> Почему я вообще должен их складывать? Как уже писали,
> от функций как от типа данных требуется поддержка других
> операций, типа композиции.
Совсем не обязательно.
Тебе ничто не мешает связать аргументы и тем самым назвать их,
тогда ты будешь работать уже с именоваными функциями.
>> Симулировать внутренний интерпретатор?
> Не понял.
Если функции невозможно создавать на лету, как их складывать?
---
"Прогресс науки обратно пропорционален числу выходящих журналов."
Математики, разумеется, про это могут не знать.Блин, в девелопменте даже такой толстый проходит. Шоке!
Для M, J, E серий, фаерволов (у ISG вроде итак неплохое управление по Http, хотя конечно если речь идет не о EMS, а о полноценной OAM системе)?
сейчас я пишу программы для управления оборудованием Juniper
Можно, что-нибудь заценить ?
Может у них тоже хорошее управление по http (не разу не смотрел, всегда было проще зайти по ssh но собирать с них информацию все-таки проще через JUNOScript.
Пока никакой жуткой логики в этих программах нет (точнее она есть, но уже в SQL и других Perl скриптах но выглядят они примерно так:
my %deviceinfo = (
access => 'ssh',
login => $login,
password => $password,
hostname => $hostname,
'ssh-compress' => 0
);
my $jnx = new JUNOS::Device(%deviceinfo);
my $res = $jnx->get_firewall_information;
foreach my $cnts ($res->getElementsByTagName('counter' {
my $name = $cnts->getElementsByTagName('counter-name')->item(0)->toString;
my $vol = $cnts->getElementsByTagName('byte-count')->item(0)->toString;
$name =~ s/<\/?counter-name>//g;
$vol =~ s/<\/?byte-count>//g;
print "$name $vol\n";
};
Единственное что EX-ы появились не так давно, и отличаются по своему устройству. Поэтому некоторые команды там называются по другому, и периодически дописываю JUNOScript для поддержки этих устройств и команд. Благо он написан хорошо, и это делается довольно просто.
Интересно наконец иметь нормальную OAM систему, в которой топология всей сети + любой сервис можно настроить за пару кликов, чтобы посадить обезьяну, дать ей инструкцию и она бы делала всякую однообразную работу, при этом не платя ей на уровне JNCIS.
Во-вторых, я считаю ssh надежней авторизации по community
Иметь систему хочется, и идея в конце-концов превратить набор программ в какое-то единое целое.
Хотя, если найдешь такую систему раньше, чем я напишу что-то более-менее вменяемое, дай знать
p.s.
когда был дикий завал рутинной работы как дать базовые настройки, настроить однотипно интерфейс, я создал себе несколько скриптов (изначально на Sed-е, потом на Perl-е которые принимали один-два параметра и делали готовый файл, который оставалось залить на устройство.
Кстати, вот все говорят SLA, SLA, а у кого-нибудь реально стоит система, которая бы отслеживала соблюдение этого самого SLA ?
PS Система и скрипты, разные вещи - между ними пропасть работы.
А много ты знаешь таких вендоров, у которых уже есть такие системы и которыми пользуются крупные пользователи?
У нас, например, в перемешку много всего: и Cisco, и Juniper, и много другого. Выбирались по разным параметрам, основной конечно деньги, плюс по началу хватало Cis-ок в качестве роутеров, потом перестало. Долгое время у Juniper-а не было коммутаторов, теперь есть, правда до сих пор не идеальны.
К тому же, не всегда Вендор способен дать подходящее тебе решение. Насколько я знаю, ReTN построен на Juniper-ах в основном, но мониторится через Cacti. Comstar строится на Cisc-ах, но мониторится тоже не вендорным решением.
Про SLA я знаю только одну систему, которая это обещает: http://www.whatsupgold.com/products/index.aspx , демка у них на сайте выглядит интересно, но на практике так и не стали пробовать.
p.s.
что от скриптов до системы много работы я в курсе, но пока нет полного понимания, чего хочу от системы, а время и желание писать скрипты пока еще есть. Вот когда придет окончательное понимание или пропадет желание писать, тогда буду искать систему под свои требования.
Сisco - говно, у них маркетинг хороший, и куча негров думает, что бля, я вот сейчас подучу CCNP, потом сдам на СCIE и стану крутым, потому что Cisco это круто.
Когда такие люди видят оборудование, в которой PWE3 настраивается парой кликов в системе и работает, они ох..ют, происходит крушение мировозрения .
Сасti - бл..дь вообше не решение, прикручивать для каждого чиха скрипт, это на уровне пионеров из домовых сетей, а не операторов (по-экспериментировать для того, чтобы понять что нужно от системы которую нужно купить еще покатит и все). Операторское решение должно обеспечивать конвеерную работу.
Комстар - вот кстати эти педики заявляли в свое время о том, что они первые в России запустили систему для SLA - у них этого нет вообще. Да и в остальных задачах пи..ц. Гонять городской трафик через УАТС (нортелловские Meridian) имея в распоряжении SoftSwitch операторского класса, это блин круто.
РТКом на OpenNMS делает, сидят волосатики прогают, но блин свалят чуваки, что с этой системой делать, документирование никакое, кто будет это поднимать.
PS вообще понятие мониторинг у многих какое-то ущербное ("О я MRTG прикрутил, оно мне загрузку канала показывает - за..ись").
Может заодно порекомендуешь оборудование с таким легким управлением? Мне PWE3 не сильно нужен, но звучит несколько заманчиво.
Huawei - эти вообще в свою систему пытаются все оборудование запихнуть , ALU (SAM их для рутеров).
У Циски просто нет нормально графической системы управления.
Операторское решение должно обеспечивать конвеерную работу.Следующий шаг - аутсорсинг всего, тогда только тикеты от клиентов распределять по подрядчикам остаётся, конвеернее и обезьянней некуда. Сиди себе, считай прибыль.
Сколько ни сталкивался с телефонистами, очень сложно понимать друг друга: видимо разные задачи решаем и выбираем разные подходы.
И с железом как-то так получается: есть фирма Nortel, которая делает вроде бы хорошее оборудование для телефонии, многие довольны. Но вот под наши цели оказалось хоть и надежное, но абсолютно неудобное, без необходимого нам функционала и с кучей своего, ни с кем несовместимого. В результате, не знаем куда сейчас деть.
Huawei в телекоме — это вообще отдельная история. Один раз дали на тест ихний роутер, и с ним возникла проблема — периодически рвет BGP сессию. Начали разбираться, выяснилось — он в каждом третьем TCP заголовке обнуляет некоторый конкретный бит. Зачем он это делает, никто не смог объяснить. А как телефонная железка — просто прелесть, работает как часы.
Я ничего не пропустил, здесь все еще обсуждают языки под *nix?
Почему я вообще должен их складывать? Как уже писали, от функций как от типа данных требуется поддержка других операций, типа композиции.Ну вообще, на множестве отображений из множества в полугруппу автоматически индицируется структура полугруппы...
Странно, что никто не обратил на то, что объединять отображения
так, как это показано выше, имеет смысл только для непересекающихся
областей определения, иначе как-то нехорошо с коммутативностью
становится. Полугруппы, как-то, не очень интересны.
---
"Математика --- лучший способ водить самого себя за нос."
ЗЫ. Я механик.
Далее все делятся своей мудростью и жизненным опытом
Это хорошо. В дифференциалах, значит, разбираешься.
---
"Утверждаю, что с научной точки зрения, главное в профессии вора,
как и в профессии святого, конечно, это вовремя скрыться."
Инфу собирать, как впрочем и конфигурять по SNMP можно, это не интересно.Уже лет 20 как это интересно, но к счастью квалифицированных специалистов, данная хуйня всё никак не наступит, а значит они будут получать свою зарплату.
Интересно наконец иметь нормальную OAM систему, в которой топология всей сети + любой сервис можно настроить за пару кликов, чтобы посадить обезьяну, дать ей инструкцию и она бы делала всякую однообразную работу, при этом не платя ей на уровне JNCIS.
Далее все делятся своей мудростью и жизненным опытомВот как теперь зовётся замер писями.
Уже лет 20 как это интересно, но к счастью квалифицированных специалистов, данная хуйня всё никак не наступит, а значит они будут получать свою зарплату.Я думаю, что действительно, манагеры сразу соображают насчёт следующего шага. Пусть подрядчики хоть обезьянами, хоть пионерами на коленках работу делают, это уже их проблемы. Я вот как раз в таком наколеночном подрядчике работаю пионером
Считаю себя квалифицированным специалистом, и очень хочу получить подобную систему. Видимо потому, что уверен, что мне платят не столько за умение работать с конкретной железкой, сколько за понимание технологий, за способность придумывать что-то новое, за творческий подход к решению проблем и за ответственное отношение к делу.Интересно наконец иметь нормальную OAM систему, в которой топология всей сети + любой сервис можно настроить за пару кликов, чтобы посадить обезьяну, дать ей инструкцию и она бы делала всякую однообразную работу, при этом не платя ей на уровне JNCIS.Уже лет 20 как это интересно, но к счастью квалифицированных специалистов, данная хуйня всё никак не наступит, а значит они будут получать свою зарплату.
При этом по возможности любую однообразную работу пытаюсь автоматизировать, и полученное решение отдать другим людям. Не хочу сказать, что делаю каждый месяц какой-то прорыв или нововведение, но подобный опыт есть. Еще ни разу ни у кого не возникало желание оспорить целесообразность получения мною зарплаты. (Или просто мне этого никто не озвучивал)
Тебя конечно никто и не уволит с появлением такой системы, но в других местах бывают топы, которые всё ждут когда-же появится нормальное РЕШЕНИЕ, которое позволит уволить этих умников.
На предыдущем месте работы в какой-то момент встал вопрос, что я такой умный не нужен. Т.е. я нужен для выполнения однотипных действий, а все моя автоматизация никому не нужна. Благо примерно в тоже время знакомым был нужен работник, поэтому без особого сожаления поменял место работы.
И не так давно ходил на собеседование, там изначально сказали: задача просто автоматизировать один процесс. Хотя это и небыстрое занятие, но когда-то и оно закончится, и мне придумают какое-то другое занятие. Может для меня не такое уже интересное, как изначальное. Как результат — я туда не пошел.
А задачи владельцев/топов тоже понятны: пока человек дешевле железки/программы, надо держать человека. Как только программа/железка станет дешевле человека, надо взять железку. А человек должен или руководить этим, или заняться чем-то другим. Или найти себя в чем-то совсем другом. Я, например, когда железки и программы станут умнее меня, хочу заняться медитацией или серфингом, и ничего плохого в этом не вижу.
Да мне приходилось и ГАТС конфигурять и трейсы разговоров снимать, и всякие говноУАТСы ставить типа LG, но я не телефонист.
Я конфигурял 7200 циски и M10i, E120 и 5350, PIXы и ISG1000.
Nortel попадался, но не много их L2 свичи (так себе WG c WiFiными точками доступа ( то что у Голды на ГолденWiFi прикольно когда это говно сначала OSPF поднимает, а потом поверх IPSec тонели, видел издалека их софтсвичи CS2000 (в Акадо за 2 млн баксов CS1500i, попроще.
Все что я говорил, это именно про оборудование на транспортную сеть, Сisco - говно, цена не адекватная, конфигурирование через консоль сети от 10 хостов - уебанство.
Когда эти пидоры не могли обеспечить 50мс сходимость, они вопили на своей говноЦискоЭкспо (это блядь додуматься надо - брать бабло за то, чтобы народ послушал их рекламную ботву нахера вам эти 50 мс, это идет из SDH и впринципе это не нужно в пакетных сетях. Когда у них это заработало (?) началось - TE, FRR, 50 мс, Сisco - это круто.
По поводу всяких заголовков. Я в свое время при тестировании Алкателевского 3G отловил багу между SGSN и BSC - короче, при пуске нефрагментированных пакетов при пинге время от времени возникали потери, не могли понять почему, обнаружили что с определенного момента SGSN (помоему) - обнулял счетчик TCP cессии, а BSC этого не делал. Пофиксили быстро, только на тендер их все равно не позвал (точнее позвали и послали сразу).
PS
Об аутсорсинге, я был в сингапурском операторе - StarHub, там вся транспортная сеть (NGSDH) на аутсорсе у Хуавея оператор доволен (а самом деле даже вся сеть ARPU c абонента - 40 баксов сингапурских 1,5 SD = 1 USD (у российских 10-15 USD). Я спрашивал, как вы решаете проблемы, все просто - отстегивают бабло, из Майлазии приезжает автобус китайцев и оборудование с завода(если глобальный фейл, но таких и не было проблема решается быстро и качественно.
Оставить комментарий
Fragaria
Хочется заботать какой-нибудь язык программирования. А то кроме PHP с JavaScript и когда-то давно изучавшихся Pascal/Delphi и Basic не знаю ничего. Ну bash немного ещё, хотя, стыдно признаться, когда надо написать какой-нибудь более-менее серьёзный скриптик в линухе для себя, пишу всё же на PHP, потому что sed/awk не осилил, а без них никуда.Цели - двойные. Перое - писать что-нибудь для себя и, возможно, для OSS-сообщества. Второе - чтобы могло пригодиться в работе, в трудоустройстве.
Среда, для которой буду писать - Linux.
Пока ограничился выбором между C++, Perl и Python, хотя ещё мне безумно нравится Lua. Java не хочу. С++ используется повсеместно, и, казалось бы, это идеальный выбор, но 1) очень большие накладные расходы для написания простых вещей, особенно с GUI. 2) сложность первоначального изучения (в том смысле, что для того, чтобы этот язык смог реально помогать в работе и был бы преимуществом при трудоустройстве, ботать нужно очень много). Тут в поле зрения попадает питон, с его биндингами к Qt, но немного смущает то, что он редко используется при разработке в России (то есть маловероятно, что он потребуется при трудоустройстве а также его семантически значимые отступы Опять же, есть широко распостранённый Perl, но он плохо читается, и что-то я не уверен, что к нему есть распространённые Qt-биндинги.
Lua привлекает изяществом языка и тем, что он юзается в такой интересной области разработки, как геймдев, но опять же отсутствующие (?) биндинги к GUI (Qt слабая распространённость и отсутствие у меня представления, как на нём можно писать для себя и как он может пригодиться в будущем...
Короче, расскажите, что ботать?