Почему изучают Perl, Python, Ruby, если компания использует C++, C# или Java как язык приложения? [закрытый]

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

66
задан 5 revs, 2 users 96% 20 May 2010 в 08:15
поделиться

35 ответов

Много времен, некоторая быстрая задача подходит, который не является частью основного программного обеспечения, которое Вы разрабатываете. Иногда задача один прочь, т.е. сравните этот файл с базой данных и сообщите мне различия. Намного легче сделать текстовый парсинг в Perl/Ruby/Python, чем это находится в Java или C# (частично, потому что намного легче использовать регулярные выражения). Вероятно, потребуется намного меньше времени для парсинга текстового файла с помощью Perl/Ruby/Python (или возможно даже vbscript съеживается и затем загружает его в базу данных, чем это было бы для создания программы Java/C#, чтобы сделать это или сделать это вручную.

кроме того, из-за простоты, в которой большинство динамических языков анализирует текст, они являются великими для генерации кода. Уверенный Ваш заключительный проект должен быть в C#/Java/Transact SQL, но вместо того, чтобы вырезать и вставить 100 раз, найдя ошибки, и вырезание и вставление еще 100 раз его часто (но не всегда) легче только использовать генератор кода.

А, который недавний пример на работе, мы должны были получить данные из одной системы учета в нашу систему учета. Система имеет формат импорта, но старая система имела совершенно другой формат (зафиксированная ширина, хотя некоторые вещи должны были быть подобраны). Задача не состоит в том, чтобы создать программу для миграции данных много раз. Это должно пихнуть данные в нашу систему и затем поддержать его там продвижение. Таким образом даже при том, что мы - C# и магазин SQL Server, я использовал Python для преобразования данных в формат, который мог быть импортирован нашим приложением. В конечном счете не имеет значения, что я использовал Python, имеет значение, что данные находятся в системе. Мой босс был довольно впечатлен.

, Где я часто вижу, динамические языки, используемые для, тестируют. Намного легче создать программу Python/Perl/Ruby, чтобы связаться с веб-сервисом и бросить некоторые данные против него, чем это должно создать эквивалентную программу Java. Можно также использовать Python, чтобы удариться о программы командной строки, генерировать тонну мусора (но все еще допустимый) данные тестирования, и т.д. довольно легко.

другой вещью, в которой хорошо разбираются динамические языки, является генерация кода. Создание кода C#/C ++/Java. Некоторые примеры следуют:

первой задачей генерации кода, которую я часто вижу, являются люди, использующие динамические языки для поддержания констант в системе. Вместо руки, кодирующей набор перечислений, динамический язык может использоваться, чтобы довольно легко проанализировать текстовый файл и создать код Java/C# с перечислениями.

SQL является целой другой игрой с мячом, но часто Вы получаете лучшую производительность к вырезанным и вставленным 100 разам вместо того, чтобы пытаться сделать функцию (из-за кэширования планов выполнения или помещения сложной логики в функции, заставляющей Вас пойти строка строкой вместо в наборе). На самом деле довольно полезно использовать определение таблицы для создания определенных хранимых процедур автоматически.

всегда лучше добраться, покупают акции для генератора кода. Но даже если Вы не делаете, действительно ли это - больше забавы провести время, сокращая/вставляя, или действительно ли это - больше забавы создать сценарий Perl/Python/Ruby однажды и затем иметь, которые генерируют код? Если Вам требуются часы, чтобы вручить коду что-то кроме меньшего количества времени для создания генератора кода, то даже при использовании его, как только Вы сэкономили время и следовательно деньги. Если это берет Вас дольше для создания генератора кода, чем это берет для вручения кода однажды, но Вы знаете, что необходимо будет обновить код несколько раз, это может все еще иметь смысл. Если Вам требуются 2 часа для вручения кода, 4 часа, чтобы сделать генератор, но Вы знаете, что необходимо будет вручить коду эквивалентную работу еще 5 или 6 раз, чем, очевидно, лучше создать генератор.

Также некоторые вещи легче с динамическими языками, чем Java/C#/C/C ++. В особенности регулярные выражения приходят на ум. Если Вы начинаете использовать регулярные выражения в Perl и понимаете их значение, можно внезапно начать использовать библиотеку регулярных выражений Java, если Вы не имеете прежде. Если Вы имеете тогда может быть что-то еще.

я оставлю Вас с одним последним примером задачи, которая была бы большой для динамического языка. Мой коллега должен был взять каталог, полный файлов, и записать их к различному CD для различных клиентов. Было несколько клиентов, но много файлов и необходимо было посмотреть в них для наблюдения, каковы они были. Он сделал эту задачу вручную.... Программа Java/C# сэкономила бы время, но в течение одного времени и со всей разработкой наверху это не стоит того. Однако удар чего-то вместе в Perl/Python/Ruby, вероятно, стоил бы того. Он провел несколько часов, делая его. Это взяло бы меньше чем один для создания сценария Python для осмотра каждого файла, соответствие, какой клиент это переходит в, и затем перемещает файл в соответствующее место..... Снова, не часть стандартного задания. Но задача подошла как та прочь. Лучше сделать это самостоятельно, провести большее количество времени, чтобы заставить Java/C# сделать задачу или провести намного меньшее количество времени, делающее его в Python/Perl/Ruby. При использовании C или C++, точка еще более поразительна из-за дополнительных проблем программирования в C или C++ (указатели, никакой массив не ограничивает проверку, и т.д.).

81
ответ дан 4 revs, 3 users 92% 24 November 2019 в 14:52
поделиться

Не говорите Вашему работодателю, что Вы хотите изучить Ruby. Скажите ему, что Вы хотите узнать о современном состоянии в веб-технологиях платформы. это просто происходит, что самыми горячими является Django и Ruby on Rails.

1
ответ дан ykaganovich 24 November 2019 в 14:52
поделиться

Учитывая увеличивающийся фокус к выполнению динамических языков (da-vinci vm и т.д.) на JVM и растущем числе динамических языков, которые действительно работают на нем (JRuby, Grrovy, Jython) я думаю, что варианты использования просто увеличиваются. Некоторые сценарии, которые я нашел действительно, извлекли выгоду,

  1. , Разработка прототипа - использует RoR или Grails для создания быстрых прототипов с преимуществом способности к runn это на стандартном сервере приложений и (возможно) повторном использовании существующие сервисы и т.д.

  2. Тестирование - правильные модульные тесты намного намного быстрее на динамических языках

  3. тест Производительности/автоматизации, пишущий сценарий - некоторые из этих инструментов начинают позволять стандарту использования динамический язык выбора записать сценарии тестирования вместо собственных языков сценария. Дополнительная льгота могла бы быть к способному для многократного использования некоторого кода модульного теста, который Вы уже записали.

1
ответ дан 2 revs, 2 users 86% 24 November 2019 в 14:52
поделиться

Философские проблемы в стороне, я знаю, что заставил значение от записи быстрых-и-грязных сценариев Ruby решать проблемы "в лоб", для которых Java был просто слишком большим. В прошлом году у меня было три отдельных структуры каталогов, которые были всеми более или менее то же, но с большим количеством различий среди файлов (клиент не услышал об управлении версиями, и я оставлю остальных Вашему воображению).

потребовалось бы много издержек для записи анализатора в Java, но в Ruby у меня был тот, работающий приблизительно за 40 минут.

0
ответ дан Jim Kiley 24 November 2019 в 14:52
поделиться

Часто, dynamc языки (особенно Python и lua) встраиваются в программы для добавления более подобной плагину функциональности и потому что они - высокоуровневые языки, которые облегчают добавлять определенное поведение, где low/mid-level язык не нужен.

Lua specificially испытывает недостаток во всех системных вызовах низкого уровня, потому что он был разработан для простоты в употреблении для добавления функциональности в рамках программы, не как общий язык программирования.

0
ответ дан Christian P. 24 November 2019 в 14:52
поделиться

Необходимо также рассмотреть изучение языка функционального программирования как Scala. Это имеет многие преимущества Ruby, включая краткий синтаксис и мощные функции как закрытия. Но это компилирует в файлы класса Java и и интегрируйтесь беспрепятственно в стек Java, который может сделать намного легче для Вашего работодателя глотать.

Scala не с динамическим контролем типов, но его "неявное преобразование" функция дает многим, возможно, даже все преимущества динамического контроля типов, при сохранении многих преимуществ статического контроля типов.

0
ответ дан sanity 24 November 2019 в 14:52
поделиться

Я думаю, что основные преимущества динамических языков могут быть сведены к

  1. Быстрая разработка
  2. Связующее звено

, короткое время цикла испытаний кода дизайна делает динамический идеал языков для разработки прототипа, инструментов и быстрого & грязные одноразовые сценарии. По моему скромному мнению, последние два могут оказать огромное влияние на производительность программиста. Это поражает меня, сколько людей тащится через вещи вручную вместо того, чтобы сделать на скорую руку инструмент, чтобы сделать это для них. Я думаю, что это - потому что у них нет чего-то как Perl на их панели инструментов.

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

1
ответ дан Michael Carman 24 November 2019 в 14:52
поделиться

Динамические языки являются фантастическими для разработки прототипа идей. Часто по причинам производительности они не будут работать на постоянные решения или продукты. , Но , с языками как Python, которые позволяют Вам встраивать стандартный C/C ++/Java в них или стихе визы, можно ускорить действительно критические биты, но оставить склеенным вместе с гибкостью динамического языка.

... и таким образом, Вы получаете лучший из обоих миров. Если необходимо выровнять по ширине это с точки зрения того, почему больше людей должно выучить эти языки, просто указать намного быстрее, что можно разработать то же программное обеспечение и сколько еще устойчивый решение (потому что отладка/фиксация проблем на динамических языках, по моему опыту, значительно легче!).

0
ответ дан Jon Cage 24 November 2019 в 14:52
поделиться

"Реальная выгода", которую видел работодатель, является лучшим программистом, который может реализовать решения быстрее; однако, Вы не будете в состоянии обеспечить любые твердые числа для выравнивания по ширине расхода, и работодатель, скорее всего, сделает, чтобы Вы работали над тем, что делает деньги теперь в противоположность наличию, Вы работаете над вещами, которые делают будущее лучше.

единственное время можно получить обучение на десяти центов работодателя, когда они чувствуют потребность в нем, и это более дешево, чем найм нового человека, у которого уже есть тот набор навыков.

0
ответ дан Dan 24 November 2019 в 14:52
поделиться

Знание grep и рубин позволили сузить проблему и проверить фиксацию для, проблема, включающая тонны исключений Java на некоторых рабочих серверах. Поскольку я бросил решение вместе в рубин, оно было сделано (разработанный, реализованный, протестированный, выполненный, зафиксированный к ошибке, повторно выполнитесь, улучшенный, проанализированные результаты), днем вместо нескольких дней. Я, возможно, решил ту же проблему с помощью решения все-Java или решения C#, но она, скорее всего, возьмет меня дольше.

Имеющее динамическое экспертное знание языка также иногда приводит Вас к простым решениям на менее динамических языках. В рубине, жемчуге или Python, Вы просто интуитивно достигаете ассоциативных массивов (хеши, словари, безотносительно слова Вы хотите использовать) для пустяков, где Вы могли бы испытать желание создать сложную иерархию классов на статически типизированном языке, когда проблема не обязательно требует его.

Плюс Вы может включить большинство языков сценариев в большую часть времени выполнения. Таким образом, это не должен быть либо/либо.

0
ответ дан JasonTrue 24 November 2019 в 14:52
поделиться

Изучение чего-то с гибкой системой ООП, как Lisp или Perl (см. Американского лося), позволит Вам лучше разворачивать и понимать свои мысли о разработке программного обеспечения. Идеально, каждый язык имеет некоторый уникальный фасет (ли это быть CLOS или некоторой другой техникой), который улучшает, расширяет и выращивает Ваши способности как программиста.

1
ответ дан jshirley 24 November 2019 в 14:52
поделиться

Если все, что Вы имеете, является молотком, каждая проблема начинает быть похожей на гвоздь.

существуют времена при наличии отвертки, или пара плоскогубцев делает сложную проблему тривиальной.

Никто не спрашивает подрядчиков, плотников, и т.д., "Почему учатся использовать отвертку, если у меня уже есть молоток?". Действительно хорошие подрядчики/плотники имеют тонны инструментов и знают, как использовать их хорошо. Все программисты должны делать то же самое, учась использовать новые инструменты и использовать их хорошо.

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

1
ответ дан John Gardner 24 November 2019 в 14:52
поделиться

Они полезны для "Быстрого Взлома", который является для включения разрыва на Вашем основном языке для быстрого (и потенциально грязный) фиксируют быстрее, чем это взяло бы для разработки того же на основном языке. Пример: простой сценарий в жемчуге, чтобы пройти файл крупного текста и заменить все экземпляры адреса электронной почты с другим тривиален с количеством времени, занятым в 10-минутном диапазоне. При взламывании консольного приложения вместе, чтобы сделать то же на основном языке взяло бы кратные числа этого.

Вы также обладаете преимуществом, что представление себя на дополнительные языки расширяет Ваши способности, и обучение приняться за решение проблем с различной точки зрения языков может быть столь же ценным как сам язык.

Наконец, языки сценариев очень полезны в области расширения. Возьмите LUA в качестве примера. Можно соединить болтом lua интерпретатор в приложение с очень мало служебным, и у Вас теперь есть способ создать богатую функциональность сценариев, которая может быть представлена конечным пользователям или изменена и распределена быстро, не требуя восстанавливания целого приложения. Это привыкло к большому эффекту во многих играх прежде всего World of Warcraft.

1
ответ дан Wolfwyrd 24 November 2019 в 14:52
поделиться

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

языки мы говорим (и те мы программируем в), сообщают пути, что мы думаем. Это может произойти на фундаментальном уровне, таком как C++ по сравнению с JavaScript по сравнению с шепелявостью, или на уровне реализации, на котором рубиновая конструкция обеспечивает эврика момент для решения в Вашем "реальном задании".

Разговор о Вашем реальном задании, если рынок идет на юг и Ваш работодатель, решает к "правильному размеру" Вас, как Вы думаете, что сложите против парня, который гибок, потому что он записал программное обеспечение на десятках языков вместо Вашего ограниченного воздействия? При прочих равных условиях я думаю, что ответ является четким.

Наконец, Вы программируете для жизни, потому что Вы любите программировать... право?

21
ответ дан Pete Michaud 24 November 2019 в 14:52
поделиться

Я не думаю, что любой упомянул это все же. Изучение нового языка может быть забавой! Конечно, это - достаточно хорошая причина попробовать что-то новое.

14
ответ дан epochwolf 24 November 2019 в 14:52
поделиться

Я, прежде всего, программирую в Java и C#, но использую динамические языки (ruby/perl) для поддержки более гладкого развертывания, начиная задачи ОС, автоматизированное создание отчетов, некоторый парсинг журнала, и т.д.

После короткого времени, учась и экспериментируя с рубином или жемчугом, необходимо быть в состоянии записать некоторому regex управление сценариями, которые могут изменить форматы данных или захватить информацию от журналов. Примером маленького ruby/perl сценария, который мог быть записан быстро, будет сценарий для парсинга очень большого файла журнала и отчета только несколько мероприятий или в человекочитаемом формате или в формате csv.

кроме того, имея опыт со множеством различных языков программирования должен помочь Вам думать о новых способах заняться проблемами на более структурированных языках как Java, C++ и C#.

9
ответ дан Alex B 24 November 2019 в 14:52
поделиться

Одна большая причина изучить Perl или Ruby состоит в том, чтобы помочь Вам автоматизировать любые сложные задачи, которые необходимо сделать много раз.

Или если необходимо проанализировать содержание файлов журнала и Вам нужно больше mungeing, чем доступное использование grep, sed, и т.д.

Также использование других языков, например, Ruby, которые не имеют большой "стоимости установки", позволит Вам быстро идеи прототипа прежде, чем реализовать их в C++, Java, и т.д.

аплодисменты HTH

,

Rob

7
ответ дан Rob Wells 24 November 2019 в 14:52
поделиться

Вы ожидаете работать на эту компанию навсегда? Если Вы когда-либо будете отсутствовать на рынке труда, то pehaps некоторые возможные работодатели будет знать парадокс Python .

5
ответ дан Chris Upchurch 24 November 2019 в 14:52
поделиться

А хороший хоккеист играет, где шайба. Великий хоккеист играет, где шайба будет. - Wayne Gretzky

Наша промышленность всегда изменяется. Никакой язык не может быть господствующей тенденцией навсегда. Мне Java, C++.Net - то, где шайба прямо сейчас. И Python, рубин, жемчуг - то, где шайба будет. Решите для себя, если Вы хотите быть хорошими или большими!

5
ответ дан liangzan 24 November 2019 в 14:52
поделиться

Лично я работаю над приложением Java, но я не мог продвинуться без жемчуга для некоторых сценариев поддержки.

у меня есть сценарии для быстрого зеркального отражения, на какой дб я указываю на, сценарии для выполнения сценариев сборки, сценариев для очистки данных & сравните материал.

Уверенный я мог делать все это с Java, или возможно сценариями оболочки (у меня есть некоторые из тех также), но кто хочет скомпилировать класс (удостоверяющийся, что путь к классу установлен право и т.д.), когда Вам просто нужно что-то быстрое и грязное. Знание языка сценариев может удалить 90% тех скучных/повторяющихся ручных задач.

1
ответ дан shelfoo 24 November 2019 в 14:52
поделиться

Когда я сначала изучил Python, я работал на магазин Java. Иногда я должен был бы сделать серьезные относящиеся к обработке текстов задачи, которые было намного легче сделать с быстрыми сценариями Python, чем программы Java. Например, если я должен был проанализировать сложный файл CSV и фигуру, которая из ее строк соответствовала строкам в нашей базе данных Oracle, это было намного легче сделать с Python, чем Java.

[еще 112], чем это, я нашел, что изучение Python сделало меня намного лучшим программистом Java; изучив многие из тех же понятий на другом языке, я чувствую, что понимаю те понятия намного лучше. И что касается того, что делает Python легче, чем Java, Вы могли бы проверить этот вопрос: Java-> Python?

4
ответ дан 2 revs 24 November 2019 в 14:52
поделиться

Paul Graham отправил статью несколько лет назад о том, почему Python программисты сделали лучших программистов Java. ( http://www.paulgraham.com/pypar.html )

В основном, независимо от того, относится ли новый язык к текущей методологии компании, уча новый язык, означает изучать новые идеи. Кто-то, кто готов выучить язык, который не считают "бизнес-классом", подразумевает, что интересуется программированием вне просто приобретения зарплаты.

Для заключения в кавычки сайта Paul:

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

, Который делает их точно, вид компаний программистов должен хотеть нанять. Следовательно, что, из-за отсутствия лучшего имени, я назову парадокс Python: если компания примет решение записать свое программное обеспечение на сравнительно тайном языке, они будут в состоянии нанять лучших программистов, потому что они притянут только тех, кто заботился достаточно для изучения его. И для программистов парадокс является еще более явным: язык для изучения, если Вы хотите получить хорошее задание, является языком, что люди не учатся просто получать задание.

, Если работодатель был готов заплатить за стоимость изучения нового языка, возможности являются людьми, которые добровольно предложили учиться (предположение, что это не был обязательный класс), будут те же люди к уже, находятся на "кратчайшем пути".

5
ответ дан crystalattice 24 November 2019 в 14:52
поделиться

Изучение нового языка является долгосрочным процессом. Через несколько дней Вы изучите основы, да. Но! Как Вы, вероятно, знаете, реальная практическая применимость любого языка связывается со стандартной библиотекой и другими доступными компонентами. Изучение, как использовать эффективно, требует большого практического опыта.

, Возможно, единственное непосредственное краткосрочное преимущество - то, что разработчики учатся отличать гвозди, которые нуждаются в Python/Perl/Ruby - молоток. И, если они хорошо работают, они могут тогда изучить еще немного (онлайн, возможно!) и становятся настоящими экспертами.

долгосрочные преимущества легче вообразить:

  1. сотрудник становится лучшим разработчиком. Лучший разработчик => лучшее качество. Мы живем в экономике знаний в эти дни. Более мудро вложить капитал в те мозги, которые уже работают на Вас.

  2. легче адаптироваться, когда следующий большой язык появляется. Вероятно, что NBL будет иметь многие функции существующими в сегодняшних языках сценариев: первоклассные функции, закрытия, потоки/генераторы, и т.д.

  3. Новые возможности рынка и способность ответить более быстро. Даже если Вы не пишете Python, , другие люди . Ваши клиенты? Другой поставщик в проекте? Возможно, критический компонент был записан на некотором другом языке? Это будет стоить денег и время, если у Вас не будет людей, которые могут понять код и интерфейс с ним.

  4. Вербовка. Если Ваша компания будет иметь репутацию преподавать новый и интересный материал людям, будет легче принять на работу главных людей. Все делают Java/C#/C ++. Это не очень эффективный способ дифференцироваться на рынке труда.

2
ответ дан Antti Rasinen 24 November 2019 в 14:52
поделиться

К ответу на обновленный вопрос это - проблема курицы/яйца. Лучший способ выровнять по ширине расход состоит в том, чтобы показать, как он уменьшает стоимость где-то в другом месте, таким образом, Вы, возможно, должны провести некоторое дополнительное/персональное время для изучения чего-то сначала для создания некоторого функционального прототипа.

Шоу Ваш босс демонстрация как "эй, я сделал эту вещь, и это экономит мне, это много времени [или еще лучше, это много $$], воображает, могли ли все использовать это, сколько денег мы сэкономили бы"

и затем после того, как они соглашаются, объясните, как это - некоторая другая технология и что это стоит расхода для получения большего количества обучения и обучения другим о том, как сделать это лучше.

2
ответ дан John Gardner 24 November 2019 в 14:52
поделиться

Я часто находил, что изучение другого языка, особенно динамически типизированного языка, может преподавать Вам вещи о других языках и сделать Вас полным лучшим программистом. Изучение рубина, например, будет преподавать Вам Объектно-ориентированное программирование способами привычка Java, и наоборот. В целом, я полагаю, что лучше быть хорошо округленным программистом, чем всунутый единственный язык. Это делает Вас более ценными к компаниям/клиентам, на которые Вы работаете.

1
ответ дан Mike Farmer 24 November 2019 в 14:52
поделиться

проверьте ответы на этот thead:

https://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-ski#84112

, Учащий новые языки, о том, чтобы относиться непредвзято и изучении новых способов сделать вещи.

1
ответ дан 2 revs 24 November 2019 в 14:52
поделиться

Im, не уверенный, если это - то, что Вы ищете, но мы пишем наше главное приложение с Java в небольшой компании, я работаю на, но использовал Python для записи меньших сценариев быстро. Программное обеспечение для резервного копирования, временные сценарии, чтобы управлять данными и выставить результаты. Просто кажется легче иногда сесть с Python и записать быстрый сценарий, чем путаница с классами и материалом в Java.

для Временных сценариев, которые не собираются слоняться поблизости, не нужно много времени проектирования, потраченного впустую на них.

И я ленив, но хорошо просто изучить столько, сколько Вы можете, конечно, и видеть, какие функции существуют на других языках. Знание больше никогда не причиняет Вам боль в будущих сменах работы:)

1
ответ дан Arthur Thomas 24 November 2019 в 14:52
поделиться

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

Что касается задач, Python/Lua/Ruby/Perl являются большими для маленьких простых задач, как нахождение некоторых файлов и переименование их. Они также работают отлично, когда соединено с платформой (например, Направляющие, Django, Lua для Windows) для разработки простых приложений быстро. Черт, 37Signals основан на создающих простых все же очень полезных приложениях в Ruby on Rails.

1
ответ дан Ed Schwehm 24 November 2019 в 14:52
поделиться

Редактирование: я записал это прежде, чем считать обновление исходного вопроса. См. мой другой ответ для лучшего ответа на обновленный вопрос. Я оставлю это, как как предупреждение против того, чтобы быть самым быстрым оружием на западе =)

более чем десятилетие назад, когда я изучал способы Компьютера, Старых Мудрецов С Бородами, объясненными, как C и C++ являются инструментами промышленности. Никто не использовал Паскаль, и только безрассудное рискнет их компаниями с ассемблером.

И конечно, никто даже не упомянул бы ужасную медленную ужасную вещь, названную Java. Это не будет инструмент для серьезного бизнеса.

Так. Гм. Замените языки в вышеупомянутой истории, и возможно можно предсказать будущее. Возможно, Вы не можете. Точка, Java не будет Последним Языком программирования никогда, и также Вы, скорее всего, переключите работодателей также. Будущее бросается на Вас 24 часа в день. Быть подготовленным.

Изучение новых языков хорошо для Вас. Кроме того, в некоторых случаях это может давать Вам престиж в течение долгого времени. Мой первый университетский курс был в Схеме. Таким образом, когда люди говорят со мной о новом язык du подмастерье , мой ответ похож на что-то, "В первом классе функционирует? Это так в прошлом веке".

И конечно, Вы добираетесь [еще 119] материал, сделанный с высокоуровневым языком.

3
ответ дан 2 revs 24 November 2019 в 14:52
поделиться

Я обнаружил, что чем больше я играю с Ruby, тем лучше я понимаю C#.

1) По мере того, как вы будете переключаться между этими языками, вы поймете, что каждый из них имеет свои собственные конструкции и философию, лежащую в основе проблем, которые они пытаются решить. Это поможет вам при поиске подходящего инструмента для работы или области проблемы.

2) роль компилятора (или интерпретатора для некоторых языков) становится более заметной. Почему система типов Ruby отличается от системы .Net/C#? Какие проблемы решает каждая из них? Вы обнаружите, что понимаете на более низком уровне конструкции компилятора и его влияние на язык

3) Переключение между Ruby и C# действительно помогло мне лучше понять паттерны проектирования. Я действительно рекомендую реализовать общие паттерны проектирования в таком языке, как C#, а затем в таком языке, как Ruby. Это часто помогало мне увидеть сквозь некоторые церемонии компилятора философию конкретного паттерна.

4) Другое сообщество. C#, Java, Ruby, Python и т.д. - все они имеют различные сообщества, которые могут помочь задействовать ваши способности. Это отличный способ поднять свое ремесло на новый уровень.

5) И последнее, но не менее важное: новые языки - это весело :)

1
ответ дан 24 November 2019 в 14:52
поделиться