JavaScript, PHP, Python, Ruby complete basic syntaxt guide with interpretation in one sheet
User-defined exceptions should subclassException.
fin = codecs. open ( ‘/tmp/foo’ ,
encoding= ‘utf-8’ )
f = StringIO()
f.write( ‘lorem ipsum\n’ )
s = f.getvalue()
var qry = fs.existsSync(‘/etc/hosts’);
# unix epoch:
t = os.stat( ‘/etc/passwd’ ).st_mtime
var a = [[‘one’, ‘une’, ‘uno’],
[‘two’, ‘deux’, ‘dos’]];
# returns NULL and emits warning if not
# well-formed:
$ doc = simplexml_load_string($ xml );
$ nodes = $ doc ->xpath( «/a/b/c» );
echo count($ nodes );
echo $ nodes [0];
# raises xml.etree.ElementTree.ParseError
# if not well-formed:
doc = ElementTree.fromstring(xml)
nodes = doc.findall( ‘b/c’ )
print (len(nodes))
print (nodes[0].text)
# raises REXML::ParseException if
# not well-formed:
doc = Document .new(xml)
nodes = XPath .match(doc, «/a/b/c» )
puts nodes.size
puts nodes[0].text
builder = ET.TreeBuilder()
builder.start( ‘a’ , <>)
builder.start( ‘b’ , )
builder.data( ‘foo’ )
builder.end( ‘b’ )
builder.end( ‘a’ )
et = builder.close()
builder = Builder :: XmlMarkup .new
xml = builder.a do |child|
child.b( «foo» , :id=>»123″)
end
html = open ( ‘foo.html’ ).read()
doc = bs4.BeautifulSoup(html)
def handler (signo, frame):
print ( ‘exiting . ‘ )
sys.exit (1)
program.option(‘-f, —file ‘)
.option(‘-v, —verbose’)
.parse(process.argv);
var file = program.file;
var verbose = program.verbose;
$ opts = getopt( «f:hv» ,
array( «file:» , «help» , «verbose» ));
if (array_key_exists( «h» , $ opts ) ||
array_key_exists( «help» , $ opts )) echo $ usage ;
exit (0);
>
$ file = $ opts [ «f» ] ? $ opts [ «f» ] :
$ opts [ «file» ];
if (array_key_exists( «v» , $ opts ) ||
array_key_exists( «verbose» , $ opts )) $ verbose = TRUE ;
>
parser = argparse.ArgumentParser()
parser.add_argument( ‘positional_args’ ,
nargs= ‘*’ ,
metavar= ‘ARG’ )
parser.add_argument( ‘ — file’ , ‘-f’ ,
dest= ‘file’ )
parser.add_argument( ‘ — verbose’ , ‘-v’ ,
dest= ‘verbose’ ,
action= ‘store_true’ )
the_file = args.file
verbose = args.verbose
options = <>
OptionParser .new do |opts|
opts.banner =
«usage: # [OPTIONS] [ARG . ]»
opts.on( «-f» , » — file FILE» ) do |arg|
options[ :file ] = arg
end
opts.on( «-v» , » — verbose» ) do |arg|
options[ :verbose ] = arg
end
end .parse!
file = options[ :file ]
verbose = options[ :verbose ]
module Foo
module Bar
# module definitions
end
end
from distutils.core import setup
alias_method :colour , :color
def __init__ ( self , v=0):
Counter.instances += 1
Int. __init__ ( self , v)
def initialize
@@instances += 1
super
end
def incr
self .value += 1
end
hostname = Socket .gethostname
ip = Socket .getaddrinfo(
Socket .gethostname,
«echo» )[0][3]
$ protocol = $ up [ «scheme» ];
$ hostname = $ up [ «host» ];
$ port = $ up [ «port» ];
$ path = $ up [ «path» ];
$ query_str = $ up [ «query» ];
$ fragment = $ up [ «fragment» ];
url = ‘http://google.com:80/foo?q=3#bar’
up = urlparse.urlparse(url)
protocol = up.scheme
hostname = up.hostname
port = up.port
path = up.path
query_str = up.query
fragment = up.fragment
url = «http://google.com:80/foo?q=3#bar»
up = URI (url)
protocol = up.scheme
hostname = up.host
port = up.port
path = up.path
query_str = up.query
fragment = up.fragment
class TestFoo (unittest.TestCase):
def test_01 ( self ):
self .assertTrue( True , ‘not True!’ )
foo = Foo()
foo.run = mock.MagicMock(return_value=7)
foo = mock()
foo.expects( :run ).returns(7).with(13).once
JavaScript против Ruby против Python. Кто выигрывает?
Когда мой друг рассказал мне о своей идее стартапа, мне пришлось придумать язык, который можно было бы использовать для написания кода как для целевой страницы, так и для мобильного приложения. После некоторого исследования я составил список плюсов и минусов, которые должны помочь вам решить, какой язык выбрать, если вы хотите создать стартап.
JavaScript и стек MEAN
В течение многих лет JavaScript использовался для разработки внешнего интерфейса, заключенного в наши клиентские браузеры. С появлением Node JavaScript и вся его асинхронная слава получили возможность свободно бродить в мире серверной разработки, что сделало этот язык настоящей двойной угрозой.
Если вы собираетесь создать свой стартап полностью на JavaScript, вам следует учесть эти плюсы и минусы.
- Благодаря оптимизированному механизму V8 от Google и асинхронному дизайну JavaScript, который по своей сути неблокирующий, некоторые задачи, выполняемые Node, в некоторых случаях в 20 раз быстрее, чем задачи, выполняемые Rails. Просто спросите LinkedIn, который отказался от Rails и заменил его на Node для повышения производительности согласно их тематическому исследованию.
- Разработчики JavaScript — это сплоченная бригада, состоящая из одного мужчины и женщины. Зачем калечить свой растущий стартап накладными расходами, если вы можете нанять разработчика JavaScript, который может написать и ваше внутреннее, и внешнее веб-приложение на JavaScript. Когда вы будете готовы создать мобильное приложение, разработчик JavaScript может использовать React Native для создания полнофункционального приложения. Никаких Swift или Java не требуется.
- Узел — это будущее. Вы хотите иметь возможность продавать возможности венчурного капитала масштабируемостью вашей компании, а растущая популярность Node обеспечивает стабильную модель роста.
- При неправильном использовании JavaScript может превратиться в монстра спагетти. Просто погуглите «ад обратных вызовов», и вы увидите, насколько неразборчивым может стать JavaScript, если программисты не программируют функционально. Это может привести к тому, что кодовая база будет трудно поддерживать.
- Узел только что вышел из печати. Многие разработчики все еще переходят от идеи, что JavaScript делает забавные вещи в сети, к идее, что JavaScript достаточно надежен, чтобы быть реализованным в серверной части. Затем вы должны принять во внимание, что Node, в отличие от Rails и Django, — это просто платформа, которая позволяет JavaScript работать вне клиента. Также необходимо изучить такие зависимости, как Express, MongoDB и Mongoose. Это означает нехватку опытных разработчиков, разбирающихся в узлах.
Рубин на стероидах
С появлением суперкоманды Node / Express / React фреймворк Ruby on Rails, похоже, уменьшился в глазах разработчиков. Не помогает и то, что сам Ruby недавно опустился на 8-е место в языковом рейтинге RedMonk, что является самым низким показателем за всю его историю. Затем наступает рост машинного обучения, больших данных и искусственного интеллекта, только некоторые из множества футуристических ключевых слов повторяются до тошноты на ключевых мероприятиях Google. Python монополизировал эту область исследований, основанных на данных, что, в свою очередь, подорвало популярность Ruby.
С учетом сказанного давайте рассмотрим плюсы и минусы Ruby.
- У Ruby одно из самых активных сообществ разработчиков среди существующих ,, а это означает отличную документацию и потрясающие зависимости с открытым кодом, или «жемчужины». Вы хотите использовать библиотеку React в своем приложении Rails? Для этого есть жемчужина!
- Код Ruby прост, но обширен. Рубиистская философия «есть более одного способа решения проблемы» поначалу может показаться немного подавляющей, но как только вы освоите несколько методов, вы будете в восторге от , казалось бы, бесчисленных инструментов В вашем распоряжении. Попрощайтесь с полифилами.
- Клянусь, Гарри Поттер изобрел рельсы. С помощью одной команды rails g scaffold Rails сгенерирует вашу модель, миграции для этой модели, контроллера и представления. Нет необходимости создавать файлы вручную. Маршрутизатор Rails превосходен своим уровнем абстракции. Например, вы можете вкладывать маршруты, используя высокосемантический псевдоязык, без необходимости набирать длинную ошеломляющую строку. Узнав все нюансы Rail, вы сможете быстро масштабировать проекты.
- В рубине есть главный криптонит: Медленная производительность. Просто посмотрите на график.
Сэмюэл Л. Джексон сказал бы: «Это одна медлительная мать — — -»
- Красный экран смерти Rails может заставить вас выдернуть волосы. Часто отладка приложения Rails может вызвать кошмары из-за ее абстрактной природы. Как только магия утихнет, у вас останутся вызовы длинных стеков и вложенные папки, которые нужно просмотреть.
Танго Python с Django Unchained
Джефф Кнупп, программист на Python, опубликовал отличную статью, в которой ловко объясняется, почему популярность Python растет. Короче говоря, язык — это инструмент для статистиков, из-за которого он получил название специалист по данным. Недавние разработки в области глубокого обучения, метода, который моделирует машинное обучение на основе нейронных сетей мозга, открыли область применения искусственного интеллекта. Если ваш стартап собирается продемонстрировать какую-либо форму интеллекта, возможно, вам подойдет кодовая база Python.
Вот некоторые из плюсов и минусов Python:
- Как и Ruby, Python читаем. Он также динамически типизирован, поэтому возникают исключения, что упрощает процессы отладки.
- Python идеально подходит для вычислительных задач из-за своего буферного протокола, который позволяет создавать расширения C из Python, которые затем можно использовать для создания мощных вычислительных библиотек.
- Фреймворк Django похож на Rails в том, что разработчик получает все необходимое для масштабирования веб-приложения из коробки. Однако преимущество заключается в том, что принцип Python «явное лучше, чем неявное» означает, что в Django меньше абстракций, чем в Rails.
- Из-за того, что Python сосредоточен на вычислениях, он не демон скорости. Фактически, он на долю медленнее Ruby… на 0,7%
- Python носит ограничительный характер. Динамическая типизация обоюдоострая, поскольку вызывает больше ошибок, большинство из которых проявляются только во время выполнения. Это означает более длительный процесс разработки. Компилятор также навязывает программистам свой собственный стиль, заставляя их правильно делать отступы и пробелы, чтобы они не столкнулись с громкими сообщениями об ошибках.
Заключение / TL; DR
Предупреждение о спойлере: я считаю, что JavaScript — лучший язык из трех, но это не значит, что Python и Ruby не имеют собственного применения. Это зависит от ситуации, в которой находится ваш стартап. Сколько у вас есть финансирования? Можете ли вы позволить себе платить талантливым разработчикам на Ruby и Python? Какой тип приложения вы создаете? Если это приложение, управляемое данными, возможно, вам подойдет Python. Ruby может быть идеальным вариантом, если у вас ограниченное время для производства или если ваш стартап основан на подрядном создании веб-сайта. Rails поможет вашему стартапу быстро масштабироваться. Но если у вас ограниченный бюджет и вам нужна высокая производительность приложения для обмена изображениями, JavaScript поможет вам.
Стажер Content Writer @ Codesmith Staffing