Альтернативный метод:
import os
import sys
import termios
import fcntl
def getch():
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while 1:
try:
c = sys.stdin.read(1)
break
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
return c
Я использую Java для нашей платформы BPM и используемый Java в прошлом для веб-приложений предприятия.
Это зависит от того, что Вы хотите сделать. Рассматривая функции языка, библиотеки доступный и опыт IDE, я лично выбрал бы C# over Java. C# 3.0 имеет много полезных функций, в которых Java испытывает недостаток, такие как LINQ, Лямбда-выражения, и т.д. Некоторые люди предпочитают огромный выбор библиотеки, который доступен для Java, но я думаю, что существует только слишком много способов сделать вещи. IDE Java как Eclipse и NetBeans являются улучшением, но я думаю, что Visual Studio еще намного легче работать с.
, Конечно, если Вы не используете Windows, у Вас нет большой части выбора, но выбрать Java. Ruby и Python могут быть хорошими вариантами для вещей как служебные приложения и графический интерфейсы пользователя, включая веб-приложения, но для корпоративных приложений, которые не используют Windows, Java является в значительной степени единственной опцией.
я использовал Java для создания различных продуктов промежуточного программного обеспечения: менеджмент Материально-технических ресурсов; CMS; химическая регистрация; и т.д.
Не следуйте вслепую за всем java-entousiasts. Java имеет свои собственные дефекты. Java является большим для быстрой разработки, предприятие ориентировало материал, и "высокую производительность" проект (с тоннами проектов, сообщества...). И если один парень показывает мне выделение сравнительного теста, как код Java может быть столь же оптимальным, как C материал не означает, что полное решение для Java быстро и легко.
Java никогда не будет находить свой путь на некоторых важных приложениях производительности, как игры, кодеки, веб-браузер. Никакие главные компьютерные игры не разрабатываются в Java, и не потому что разработчик не способен к записи одной части кода Java, который имеет ту же скорость как C или C++, это вызвано тем, что самые ограничения языка включают ту производительность, и память consuption никогда не будет достигать хорошего кода C/C++. Берет VisualStudio и Eclipse. Java является большим для одного материала (материал производительности, промежуточное программное обеспечение предприятия), но если Вы хотите записать кодеки, игры, производительность критические библиотеки, необходимо попытаться знать C. Но, один другая рука, Вы напишете код Java, быстрее и более безопасный с C и C++, Вы берете на себя больше риска (указатели!) и это обычно занимает больше времени.
И не забывают шутку "Запись однажды, Отладка везде", это на самом деле верно. Необходимо иметь дело с другим кошмаром реализации JVM с Java.
Другой язык программирования имеют их интерес, сценарии удара/Python для локальных сценариев (повторяющееся действие, быстрый и быстрый UI...). Php или рубин для webapplication очень хорошо развертываются и документируются в сети.
Другое преимущество является потрясающими доступными инструментами статического анализа, например, FindBugs. Они выполняют большое проверение Вашего кода выше и вне выполненных компилятором и могут помочь определить ошибки и/или кодировать запахи, прежде чем тестирование начнется.
Почему я выбрал бы Java? Если у меня, оказалось, была команда <забастовки> заменимый обезьяны кода забастовка> разработчики, которые знали Java лучше, чем что-либо еще, которое является, вероятно, с чем я пошел бы.
Мобильность является ключом к Java. Я знаю, что программа, которую я кодирую, будет работать на любой системе, нет никакой потребности создать различные выпуски для другой ОС. Java также предлагает созданный в безопасности, делая кодирование безопасных программ легче.
Java быстр, с чистый код , Java сравнивает в том же диапазоне как C++.
C# является языком, который добирается по сравнению с Java чаще всего. C# не является столь же портативным как Java и имеет очень немного функций, которые не делает Java. Это делает Java намного более привлекательным, если программа не будет ТОЛЬКО запущена на единственной ОС, в этом случае я мог бы кодировать его в C++.
Используя его для настольных приложений.
Превосходные IDE доступный, замечательный API, синтаксис "C-стиля" помогает погрузке. Как только JVM запускается, производительность является большой.
Почему я выбрал бы Java - действительно ли это - самый популярный язык там прямо сейчас? В противном случае это, должно быть чертовски близким, поэтому если бы я создаю продукт, я мог бы выбрать это, потому что было бы самым легким нанять разработчиков для.
, Почему, я выбираю Java - потому что это - то, что я знаю лучше всего.
Вещи еще не упомянули:
Java обеспечивает очень богатый API прямо из поля, и руки вниз производит большинство портативных приложений, так как существует Java VM почти для каждой платформы.
BTW: Я не использовал Java, так как я покинул колледж, так как я работаю на магазин Microsoft, но я не могу думать о единственной вещи, которую я могу сделать в C#, который я не могу сделать в Java, ли это быть корпоративными приложениями, веб-приложениями или настольными приложениями.
1) Очень хорошая и свободная документация
2) Очень хороший разработчик коммерческие и бесплатные инструменты
3) хорошая сертификация и учебные ресурсы
4) хорошие и бесплатные инструменты во время выполнения
5) хорошее профилирование и контроль инструментов
6) очень хорошие варианты поддержки от различных компаний
7) очень хорошее сообщество разработчиков ПО с открытым исходным кодом с огромным количеством библиотек
Много больших причин было уже упомянуто. Я хотел бы добавить политическую часть. Я доверяю языку Солнц намного больше, чем альтернативы Microsoft. Это - не потому что я ненавижу Microsoft, это просто, что Sun идет направление с Java, что я действительно как, и Microsoft иду направление с .NET и т.д., что мне действительно не нравится.
Это очень субъективно, я знаю. Но мне кажется, что Sun действительно хочет создать большой язык и попытаться делать деньги так или иначе. В то время как Microsoft кажется более интересующейся деланием денег зависимостью от поставщика и системами, который выглядит большим и чувствует себя большим, но не может быть столь хорошим, как это смотрит в конечном счете.
Так способ, которым Microsoft обрабатывает его прямо сейчас, я даже не забочусь о том, насколько хороший или плохой это, технически. Я не забочусь, я не собираюсь использовать его.
Java имеет все, что я хочу от этого вида языка программирования, включая весь скучный политический материал, который просто пропускает большинство людей. Я не знаю ни о каком другом текущем языке, который имеет все это.
Мои причины того, чтобы предпочесть Java по другим языкам программирования в это время:
, которую я писал программам в Java больше десятилетия, и я довольно удовлетворен им. Я использовал другие языки в течение почти двух десятилетий перед этим. Таким образом, я не смещаюсь путем описания одной вещи, которую я знаю - это - один из многих языков, которые я знаю глубоко.
, Когда обновления JDK/JRE выходят, я просматриваю документацию для наблюдения то, что изменяется. Sun хорош о сообщении/объяснении этого. У меня никогда не было чрезвычайно грубого времени, портируя от одного JDK до следующего.
, Когда я переключился от одной ОС до другого как моя основная ОС дома или на работе, она не вызвала проблему для JAVA-приложений, которые я пишу - или инструменты, которые я использую, обычно. Одним исключением является Borland JBuilder, который некоторый маркетинг Borland или технический гений, решенный, чтобы часто прекратить поддерживать. Eclipse и Netbeans, выполненный ужасно на Mac и вероятно всегда, будут. Я использовал Java на:
VMs (виртуальные машины) везде! Они находятся в:
я записал программы на всех них. Все, что необходимо сделать, получают IDE с правильными плагинами, получают документацию API для целевой среды, которую Вы хотите и начинаете программировать.
программы GUI, которые я пишу на самом деле, смотрят & работайте правильно над различными платформами! Я не могу сказать Вам, сколько времени другие поставщики обещали сделать и как часто/долго они перестали работать. Просто озирайтесь, некоторые все еще существуют.
Sun обещал это в Java 1.0, и они сортируют поставленных его с AWT. Однако абстрактный инструментарий работы с окнами использовал собственные компоненты графического интерфейса пользователя и различия между этими компонентами (который следовал, никакой стандарт объединения вообще) были слишком большими для получения того же/хорошего взгляда/поведения на всех платформах.
Sun, поставленный очень хорошо на этот портативный GUI, обещает, когда API GUI Swing был поставлен десятилетие назад, назад в декабре 1998.
Одна из хороших вещей о Java - то, что все знают это. Конечно, теперь, когда я сказал, что, получу 80 комментариев от людей никогда, утверждающих не учить язык. Будьте этим, как это может...
Нравится или нет, Java является самой близкой вещью на лингва франка (идиома означает "общий язык"), мы имеем в промышленности сегодня. Примерно каждый или использовал Java в какой-то момент или (чаще всего) активно использует его теперь. Такая повсеместность может быть чрезвычайно привлекательна для некоторых компаний, особенно уверенные в консультантах. При запуске проекта в Java Вы, как в значительной степени гарантируют, будете в состоянии найти талант поддерживать кодовую базу в течение многих лет в будущем.
На другом гвозде, Java является превосходным языком для разработки межплатформенных настольных приложений... это просто, что никто не знает это. Большая часть преобладания Java находится на стороне сервера вместе с определенной любовью от толпы J2ME. Однако, если Вы объективно рассматриваете Swing в Java 6uN, трудно найти лучший инструмент для задания. Не понимайте меня превратно, я вижу, что это имеет свои дефекты, но многие из тех были зафиксированы в недавних выпусках. Большей частью проблемы теперь является доля завоеванного внимания: все знают , что Java является медленным и ужасным (ни один из которых больше не строго верен). Другая проблема состоит в том, что Swing является в значительной степени межплатформенным инструментарием UI. Это означает, что по сути намного более трудно создать профессиональный UIs в Swing, чем в Какао или даже WinForms.
Наконец, действительно большой причиной выбрать Java (в противоположность.NET или Objective C) является экосистема. Другие ответы упомянули библиотеки, которые действительно заслуживают значительного центра внимания; но я думаю конкретно о возрастающем разнообразии языка. Если Вы пишете приложение в Java сегодня, можно беспрепятственно перейти Scala в любое время. У Вас также есть опция сделать сценарии в Groovy или JRuby, не говоря уже об использовании в своих интересах мощных абстракций параллелизма в Clojure. Из-за ее мобильности и высокоуровневой природы, JVM все больше является предпочтительной целью для языковых компиляторов и интерпретаторов (еще больше, чем CLR). Java действительно в центре той связи, не действительно извлекая выгоду непосредственно из обширного облака языков, которые роятся вокруг этого, но конечно получение значения на всю совместимость, настоящее и будущее.
Я переключился с лет C++ к Java, потому что я работал над высокоуровневым материалом и нуждался в преимуществах управления памятью, отражения, и поиграл в песочнице выполнение, которое я получаю с Java.
я попробовал COM в конце девяностых и не мог коснуться его.
.NET выглядит многообещающей и во многих отношениях теперь намного лучше, чем Java. К сожалению, быть центральным окном является полным dealbreaker для меня.