Помогите советом в выборе языка ООП (веб)

web
java
Теги: #<Tag:0x00007fedbb957620> #<Tag:0x00007fedbb9574e0>

(Mykhailo Poliarush) #17

это точно! :)


(vmaximv) #18

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

Как уже говорилось в какой-то теме на данном форуме - главное в автоматизации это архитектура.

Про функции вообще ничего не понял. Все опять-таки зависит от архитектуры.

Например тест на логин в рамблере:

public void testLogin() {
  RamblerHome page = new RamblerHome();
  page.clickLink("Войти");
  page.loginFrame.waitForElement();
  page.loginFrame.rememberMe.verifySelected(false);
  page.loginFrame.type("Логин:", "just.for.testing");
  page.loginFrame.typeAndSubmit("Пароль", "test123");
  page.verifyTextContains("just.for.testing");
  page.clickLink("profile");
  page.clickLink("Выйти");
}

 

Почему многие выбирают джаву? Наверное из-за схожести синтаксиса с прародителями ООП таких как C++, Object Pascal, так и более современными типа C#.

И лично меня синтаксис php повергает в легкий когнитивный диссонанс. Хотя и приходилось писать автотесты и на ruby и на php.


(Artur Korobeynyk) #19

 

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

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

Hello World in Java:
 

public class HelloWorld {

public static void main(String[] args) {
System.out.println(“Hello, World”);
}
}

 
Hello World in Python:
 
print “Hello, World”

 

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

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

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


(Artur Korobeynyk) #20

Почему многие выбирают джаву? Наверное из-за схожести синтаксиса с прародителями ООП таких как C++, Object Pascal, так и более современными типа C#.

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

Джаву выбирают далеко не многие. И даже немного погуглив вы увидите что ссылки типа Why Python is better than Java выпадают значительно чаще, чем обратные, даже если в поисковик вводить Why Java is better than Python. Тесты на С++ это либо идиотизм, либо безвыходность в связи с особенностями проекта (может вы драйвера пишете, не знаю), потому как сами приложения написанные на С++ в 99% случаев очень уязвимы к ошибкам с памятью, а если при этом ещё и тесты такие делать... (Хотя последние реализации этого языка С++0x или так званый С++ 11 уже умеют распознвать конструкции которые весьма похожие семантикой на скриптовые языки типа питона и руби, так что кто знает, может появятся хорошие фреймворки тестирования в скором).

Синтаксис PHP не знаю, никогда на нем не писал (разве что перехватчики REST запросов), при чем он здесь - тоже не знаю.

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

Любой код написанный на скорость - это agile среда, которая сейчас встречается довольно часто. Глупости в алгоритмах - это недостаток программиста, а не языка.

Главное в автоматизации - это большое покрытие регрессионых тестов. Вы можете разрабатывать суппер умную обучающуюся систему принятия решений в зависимости от ситуации, но если она будет просто красиво выглядеть и ничего не делать - она нужна не будет. Хороший фреймворк - это удел программистов разрабатывающих фреймворк, а не тех кто должен использовать его для тестирования. Задача тестировщика - писать тесты, писать их быстро и хорошо => [писать тесты можно на чем угодно, писать тесты на скриптовых языках быстрее, писать хорошо зависит от опыта] => два параметра языково независимы, один параметр у скриптовых языков выигрывает.


(apetrovskiy) #21

Скриптовые языки очень важны как для распределённых систем, так и для небольших. Как в тестировании, так и в администрировании, и в управлении программистскими системами типа сборки, сорсконтрола, проверки кода и т.д. Одно из преимуществ - скорость написания. Другое - возможность заменить часть кода без перекомпиляции всей (часто распределённой) системы.

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

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

Что касается примера кода, вот три варианта на PowerShell:

 

"Hello, World!"
Write-Host "Hello, World!"
"Hello, World!" | Out-Default

(karkadil) #22

Светлана опять создала тему, в которой кипят страсти :)

Я тоже свой пятак всуну.

Языки (по убыванию приоритета): Python, C#, Java (почему джава в конце? я ее просто не люблю, простите...)

 


(ffess) #23

Вы конечно извините, я понял что вы не любите Джаву, и поэтому поставили ее в конце, но Руби-то чем Вам насолил?

Мне приходилось понемногу на сишарпе и на джаве поработать, но Руби для меня оказался самым-самым, я здесь никому не навязываю свои мысли и предпочтения, но про "нелюбимую" джаву Вы все-таки упомянули, а про Руби - нет. Достаточно было бы сказать: не пробовал - не знаю. А сложилось такое ощущение, что он(язык) прям упоминания даже не достоин

 


(Svetlana_) #24

Она была еще до ТОЙ )))

На самом деле, лично для меня, эта тема уже не актуальна, т.к. на текущий момент остановилась на python )

Но джава для меня предоставляет наибольший интерес. Как вызов что ли. Поэтому нетерпится сесть и за ее изучение, но уже после python)

 


(karkadil) #25

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

Я еще много чего не упомянул на самом деле. В ТестКомплите я всегда пользуюсь JavaScript-ом, а для совсем начинающих (и кому все равно, с чего начинать, и кто никогда не сталкивался ранее с программированием) я часто советую VBScript (с пометкой, что это только "для изучения основ").


(karkadil) #26

Она была еще до ТОЙ )))

На самом деле, лично для меня, эта тема уже не актуальна, т.к. на текущий момент остановилась на python )

Тогда будьте последовательны и создайте новую тему: "Какую выбрать IDE для изучения Python'a?" :)


(apetrovskiy) #27

Если речь идёт не о JavaScript, а о JScript (где там JavaScript в тесткомлите??), то разницы с VBScript уж совсем не много (один и тот же скриптинг хост).

В настоящем javaScript размаха, конечно, побольше.

Если не считать поделок типа тесткомплита, и JScript, и VBScript давно уже заменены PowerShell (динозавров всё меньше и меньше).


(Svetlana_) #28

хах)))

в этом нет необходимости 0=)

проще принимать решения, когда уже есть от чего отталкиваться и примерно представляя в какую сторону движешься )


(karkadil) #29

В настоящем javaScript размаха, конечно, побольше.

И в чем это выражается? JScript - всего лишь майкрософтовская реализация языка JavaScript и практически всё, работающее в JavaScript, будет работать и в JScript. Вот тут хорошо объяснено (первые 2 ответа)

http://stackoverflow.com/questions/135203/whats-the-difference-between-javascript-and-jscript

Если же вы имеете ввиду, что в "настоящем" JavaScript больше возможностей в том смысле, что он используется в веб-приложениях, так тут просто используется язык для совершенно разных нужд. Никто не мешает открыть с помощью тесткомплита страничку в браузере и выполнить в ней свой JavaScript-сценарий, но зачем?

И уж совсем третье дело - ограничения тесткомплита при использовании JScript, но их не так уж и много. Мне больше всего не нравится, что тесткомплитовская IDE не поддерживает классы (т.е. я не могу пользоваться всякими наворотами для перехода на нужный метод, например), но ООП никто не мешает использовать. Есть еще несколько минусов, но все они никак не относятся к разнице между JScript и JavaScript. 


(dim) #30

Правильно ли я понимаю, что за 4 года мало чего изменилось и python все еще удобней для написания автотестов, нежели java?


(dim) #31

Кстате оч интересно на каком языке больше работы в СНГ? python or java?
*я понимаю что это очень пальцемвнебо, но все же, может кто-то заметил тенденцию?


(Oleksandr Khotemskyi) #32

TypeScript уже советовали?


(Mykhailo Poliarush) #33


(Artur Korobeynyk) #34

Кто-то лайкнул мой пост и я его перечитал. Так вот, к упоминанию. Программа университетов Индии, которые были основными разработчиками джавы, со следующего года убирают джаву из преподавания, будут замещать её скриптовыми, С++, Го. Пока в метро катался, где-то в новостях проскочило.


(Mykhailo Poliarush) #35

Ты ссылки давай, а то вдруг не поверят


(Artur Korobeynyk) #36

Да по радио слушал, здесь в финке, а в финке много индийских разработчиков.
Но для ссылок https://qz.com/1084770/bye-bye-java-its-time-for-indian-it-institutions-to-let-go-of-outdated-coding-languages/