Сравнение узкоспециализированных языков
Народ частенько ругается на 1С, как на язык программирования, или точнее конфигурирования. Ругается, обоснованно, и основной довод - это узкая специализация, т.е. за пределами 1С знания сего языка не нужны как таковые.
Мне по долгу работы приходится работать с другим [COLOR="Silver"]тихим ужасом[/COLOR] языком - VBA. И вот подумалось, ну а в чем такая уж принципиальная разница между VBA и 1C? Та же узкая специализация, разве что Access почаще встречается, чем 1С.
Что скажете, товарищи? Вообще изучение VBA как такового может принести пользу, как программисту или же пустая трата времени, как в случае с 1С?
PS. Топик не для меня, не для поныть, что всякую ерунду изучаю, не думайте. Просто интересно порассуждать, да и скучно ж на форуме что-то.
Ну вот насчет этого, вы, батенька, явно загнули :)
Что касается VBA - его все же знать полезно, в частности для того, чтобы нормально интегрировать свою программу на любом другом языке с приложениями офиса через COM. Это только один из примеров.
конфигурасты - это отдельная песня. 1С же язык не без недостатков. Перечислю те, что знаю, хотя и конфигурастить не пришлось (хотя много раз предлагали):
1. Низкий порог вхождения. За это ругают Дельфи, за это ругают ПХП, но в 1С он РЕАЛЬНО низкий. Ну а зачем уметь программировать, если там итак все ясно, все на родном русском. Отсюда и быдлокодерство, отсюда и некомпетентность конфигурастов.
2. Узкая специализация. За пределами 1С этот язык никому не нужен. Он вообще оторван от основной массы языков - так уж вышла. Этакая этника в контексте программирования. К тому же он ну никак не располагает к познанию азов программирования. Ну разве что алгоритмика все та же, но это уже лирика.
Может есть и еще минусы, но это надо знать подробности. Я лишь так, навскидку чегой-то навспоминал.
В чем же?
Да, толк есть. Но небольшой. Объясню почему. VBA - язык весьма простой, и изучать его на уровне создания серьезных приложений - как минимум, смысла нет. Ведь когда нужно будет заниматься этой самой интеграцией (что в общем то не такое уж частое занятие), можно все это сделать, имея под рукой справку - это реально легко. На своем опыте говорю. Даже сложнее познается инфраструктура, в том же акцессе - всякие эти формы, отчеты и прочая муть. А язык - легкий.
1. Низкий порог вхождения. За это ругают Дельфи, за это ругают ПХП, но в 1С он РЕАЛЬНО низкий. Ну а зачем уметь программировать, если там итак все ясно, все на родном русском. Отсюда и быдлокодерство, отсюда и некомпетентность конфигурастов.
2. Узкая специализация. За пределами 1С этот язык никому не нужен. Он вообще оторван от основной массы языков - так уж вышла. Этакая этника в контексте программирования. К тому же он ну никак не располагает к познанию азов программирования. Ну разве что алгоритмика все та же, но это уже лирика.
К минусам ЯП следует относить отсутствие возможностей или "костность языка". 1С решает возложенные на него задачи. Низкий порог вхождения это даже наверно плюс.
К минусам можно добавить, что он не объектно-ориентированный.
А вообще попозже я выложу ссылку на статейку - начальник писал, почему нельзя автоматизировать предприятие бухгалтерским софтом.
Вообще, я сторонник пути от простого к сложному. поэтому только "за" касательно того же VBA. Постепенно до человека доходит осознание, что ему чего-то здесь не хватает и хочется нечто "посерьезней". Понимаешь, спустя некоторое время, что простата программирования на высокоуровневом ЯП компенсируется (в минус) различным "мусором". Типо ограниченности языка, необходимости таскать с прогой монструозные "фреймворки" и т.п. Но это, на мой взгляд, надо прочувствовать.
Конечно, есть гении, к коим я не отношусь, которые начинают чуть ли не с двоичных кодов. У меня в группе был такой пацанчик. Но для "простых смертных" - ИМХО самый лучший путь начать с того, что попроще. И катиться дальше.
Кстати, беда нашего пространства которую нам подарили "пираты", что люди не ищут простых решений. Вот пример (думаю многие встречали), когда "хомячки", что бы сделать надпись на фотке для "одноглазников" или там убрать "красные глаза", непременно ставят себе Фотошоп и не менее. Вот и у нас на форуме топики периодически появляются в стиле "не запускается Кризис на Вын Сервер 2008". Хотя с другой стороны, если "хомячок" заинтересуется, он может пойти дальше и стать хороши дизайнером. Но, как и в любом деле касающимся драгоценностей, крупица золота на тонну породы.
Наличие в ЯП функции
Функция перегружена. И для отладки используется следующая конструкция
К минусам можно добавить, что он не объектно-ориентированный.
ООП не может быть ни минусом ни плюсом. По поводу заявленных тут обвинений - хотелось бы увидеть конкретику. Я не являюсь "конфигурастом", я реализую например на этом языке, те задачи, которые передо мной ставят. Стоимость оплаты кстати сравнима с ПХП - т.е. в районе -надцить долларов/час. Это кстати, соответствует ценам "конфигурастов" в регионе. Цены вполне адекватны - задачи приходится решать зачастую весьма не стандартные - и если на ПХП у тебя есть возможность рубить гордиев узел - 1С требует точного соотвествия бухгалтерской задаче.
Уровень вхождения тут на самом деле не многим ниже чем в ПХП. А может даже и выше - потому что требует понимания - хорошего бухгалтера и хорошего программиста. Кто из вас легко может сказать задействованные счета, при закупке комплектующих у не резидента. А это весьма несложная задача.
А реальные задачи - сложнее на 2-3 порядка как минимум. Объяснил понятно?
По поводу стоимости внедрения.
У меня к сожалению нет примеров равноценных задач - но основываясь на моем личном опыте в производстве и торговле внедрение на базе распространенных (Бест-ПРО, GrossBee, Парус и еще пару используемых на просторах СНГ) а так же самописных ERP - за редким исключением (имеется ввиду что ERP либо пишется под конкретную компанию, либо в тоже время грамотно (я в частности такое делал)), внедрение на базе 1С оказывается дешевле. Исключение было в моей ситуации - в 1С просто не было такого решения. Тут разумней и эффективней было внедрять свою полностью самописную систему - с возможностью интеграции в 1С ибо патамушта. Пока это стандарт.
По поводу семерки и восьмерки - разный инструментарий - потому и не совместимы. мастдай98 и ХР - в некоторых вещах тоже не совместимы.
Общие принципы присутствуют, но для использования новых возможностей надо использовать восьмерку.
Ну и так далее. На самом деле задачи автоматизации бухгалтерии и складсткого учета 1С решает и в целом успешно. Говорят что зарубежные аналоги делают это лучше - но я пока сравнительный анализ провести не могу.
http://insideiq.com/may_be_1C
И заодно приведу пример из жизни про 1С конфигуразм:
У моей мамы, как у владельца бух. аутсорсинговой фирмы, был клиент - контора по продаже авиабилетов. Казалось бы ничего такого, ан нет, после нескольких лет работы стало ясно, что продажа авиабилетов - это очень специфично. Приглашается конфигураст и 1С допиливается для этой конторы. И вроде бы все довольны. Но я наблюдал за процессом разработки - человек дает имена переменным на казахском языке (!), не форматирует код и т.д. Об алгоритмах говорить нечего - он все задачи "крестьянско-народным" методом решал - сам сказал. Я не хочу сказать, что все так конфигурастят, думаю тот же kot_ так не делает. Но в то же время, не думаю, что это единственный случай - он сам мне говорил, что 1С это легко, круто и хорошо платят. Но судя по нему - как программист он не развивается.
Если бы язык выглядел как обычные языки - только латиница, минимальный набор функций, то чем бы он отличался от сотен уже существующих? Было бы проще интегрировать какой-нибудь Ruby (на нём кстати крутится довольно популярная прога для создания игр). Так можно было и здесь сделать.
Но видимо хотели имеено чего-то простого, что "конфигурасты" могли бы понять без лишних пинков. А то, как они будут развиваться в качестве программистов вряд ли было первостепенной задачей.
Тем более, что свои задачи этот продукт, как сказал kot_, выполняет успешнее того же PHP - значит, задачу свою выполнил, имхо.
У меня ссылка не открывается.
странно, проверил - все нормально.
Теперь и у меня открывается, с задержкой правда.
http://insideiq.com/may_be_1C
И заодно приведу пример из жизни про 1С конфигуразм:
У моей мамы, как у владельца бух. аутсорсинговой фирмы, был клиент - контора по продаже авиабилетов. Казалось бы ничего такого, ан нет, после нескольких лет работы стало ясно, что продажа авиабилетов - это очень специфично. Приглашается конфигураст и 1С допиливается для этой конторы. И вроде бы все довольны. Но я наблюдал за процессом разработки - человек дает имена переменным на казахском языке (!), не форматирует код и т.д. Об алгоритмах говорить нечего - он все задачи "крестьянско-народным" методом решал - сам сказал. Я не хочу сказать, что все так конфигурастят, думаю тот же kot_ так не делает. Но в то же время, не думаю, что это единственный случай - он сам мне говорил, что 1С это легко, круто и хорошо платят. Но судя по нему - как программист он не развивается.
Имена переменных на казахском языке вполне допустимы в 1С. Что именно тебя так напугало? :) Как конкретные огрехи конкретного прогера связаны с проблемами языка? Я не говорю, что 1С - это лучшее и т.д. Боков там хватает. Гавнопродукт такой. Но с другой стороны - задачи решает. И альтернатив пока нет - в смысле эффективности внедрения, цены и т.д.
Вот, кстати, пример еще одного "узкоспециализированного" языка:
{
InventTable inventTable; // Здесь мы объявляем табличную переменную
InventTableModule module; // И здесь тоже
while select count(RecId) from inventTable // А теперь пошуршим по базе
group by ItemType
where inventTable.ItemId like "Н*"
exists join TableId from module
where module.ItemId == inventTable.ItemId &&
module.ModuleType = InventModuleType::Sales &&
module.Price > 10.0
{
print strfmt("%1: %2", inventTable.ItemType, inventTable.RecId);
}
}
Собственно, язык - X++, а код выводит количество номенклатур, код которых начинается с Н из справочника номенклатур с ценой продажи большей, чем 10.
Я не представляю, как более кратко изобразить это на любом другом популярном не "узкоспециализированном" языке :)
я не спорю, что 1с в каком то плане вне конкуренции. я просто че думаю, не было бы лучше, если бы они не изобретали свой язык, а заточили бы какой-нибудь питон например, как это сделала когда-то нокиа? может имена переменным на казахском и не получилось бы давать, но зато язык был бы интереснее. в том плане, что если я изучаю 1с, то я знаю, что язык питон мне в будущем может пригодиться. как-то так.
Ока. Как же? Тогда любой знающий питон + бухгалтерию смог бы бомбиць конфиги 1С в виде скриптов. А так придецо записаться на курсы и получить сертификат, купить базовую платформу (вроде у 8-ки так) и уже потом, с чувством выполненного долга, рубить бабло. Не забывая при этом, посещать курсы опять, продлять сертификат и прочее и прочеее.
Бабло - побеждает всё!
Бабло - побеждает всё!
а у нас чуваки без всяких сертификатов фигачили. и ниче )))
впринципе 1сники при создании ориентировались на массы, и видимо так оно и вышло.
По большому счёту, универсально хорошим программистом можно стать только если решать множество разных задач. Так, один мой хороший знакомый среди прочего автоматизировал фотошоп яваскриптом. Не скажу, что это его испортило.
А спора нет. Так, болтаем. :)
А то и значит. Вот если продавать магниты, навыки программиста приобретаются? Вряд ли. По моему тот же эффект при программировании на подобных "заточках". Вот прогаю я на ВБА и морально недоволен, на ПХП и то интереснее для меня. А важно может быть много для чего - развитие проф. навыков, карьеры и т.д. Заметка в резюме, что я знаком с ВБА мало, что мне даст, а между тем программировать можно на нем долго, как пример тот же тов. Каймонов (Санила знает о ком я) - 8ой год этим занимается.
Вот я про то и рассуждаю, так ли уж целесообразно юзать подобные "заточки" или было бы грамотнее интегрировать туда питон или руби (или что-то подобное)?
Ради эффективного решения задач развиваются все. Программирование же, процесс, отчасти, творческий. Поэтому без спорта никак. :) Ну для меня лично.
Ну вот сидели они, сочиняли свой 1С. В какой раз повторюсь, почему не проинтегрировали готовый язык? Какой-то более универсальный... Ладно VBA - суть заточенный VB - тут проблема в том, что оно само по себе устарело на данный момент.
Да ради Бога. Но речь не про то, как стать хорошим программером, а все же про то, правильно ли создавать костыли-заточки для решения спец. задач или все таки универсализация наше все? Я за второй пункт.
Вот если продавать магниты, навыки программиста приобретаются?
Так а с чего вообще взялась эта идея, что "назыки программиста" должны приобретаться в принципе на такой работе? "Конфигурастам", как их тут красноречиво обозвали :D я думаю, гораздо нужнее и ближе навык бухгалтерии... хочется в это верить, по крайней мере.
Вот я про то и рассуждаю, так ли уж целесообразно юзать подобные "заточки" или было бы грамотнее интегрировать туда питон или руби (или что-то подобное)?
Питон и руби нервно курят глядя на то, что у меня на аватаре :) Ладно, шутка.
Проблема не сколько в выборе языка. Проблема в потенциальных пользователях языка. ;)
Вот, кстати, пример еще одного "узкоспециализированного" языка:
Так вот откуда в C# LINQ приехал. :rolleyes:
я не спорю, что 1с в каком то плане вне конкуренции. я просто че думаю, не было бы лучше, если бы они не изобретали свой язык, а заточили бы какой-нибудь питон например, как это сделала когда-то нокиа? может имена переменным на казахском и не получилось бы давать, но зато язык был бы интереснее. в том плане, что если я изучаю 1с, то я знаю, что язык питон мне в будущем может пригодиться. как-то так.
Я думаю, что если бы ты работал с ранними версиями 1С - то ты бы таких вопросов не задавал. Человек, способный написать ТАКОЕ и предлагать его как коммерческий продукт, изначально не мог пойти по тому пути, о котором говоришь ты. ;)
по этому не парься, наиболее верный подход - это изучить достоинства и недостатки и предложить свое. Это в разрезе твоего подхода. В случае же практического решения задач - то тут варианта два - либо преложить готовое решение, наиболее отвечающее специфике рынка, либо взять на себя отвественность по внедрению нормальной системы, без всякого обоснования и реальных перспектив. Я не говорю. что это не реально - но надо понимать, что данный путь будет весьма не простым в ближайших 5-6 лет и потребует огромных вложений труда и вероятно средств.
Да не нужен там, мне кажется, ни пайтн, ни рубин. Я сейчас вон Terrasoft конфигурирую (не прям фиолетово, но сами платформы почти похожи) на JavaScript - это реально чересчур шикарный язык для этой системы. Там нужно что-то более заточенное.
И питон и руби - нужны, проблема в том, что нет смысла задавать вопрос почему нет его в 1С - потому что ответ - а нах? Кому нужна мертвая система пусть даже на питоне?
Есть вариант первый - 1С уйдет в небытие - при чем, крики - как так, сотни компаний и т.д. - эти "сотни компаний", как те анаэробные бактерии - живут в безвоздушном пространстве СНГ. И как и положено анаэробным - появление свободного рынка их убъет, либо остановит их размножение. Пока существует клики путинов-януковичейтимошенко-лукашенко - 1С может чувствовать себя в безопасности.
Вариант второй - как облигатные анаэробы - 1С найдут свою нишу на рынке. Может и питон с руби тогда у них появится.
Просто поймите - 1С - это то, что к программированию имеет опосредованованное отношение.
Хотя начиналось все здорово - написание русской ОС и русского языка разработки. Вот такой ребенок по пьяни получился.
Поэтому 1С знать надо - но надо знать его реальные проблемы.