Search
Write a publication
Pull to refresh
1
0
Send message
Но использовать его в продакшене до первой стабильной версии никто бы не стал, поэтому имеет смысл говорить именно об этой дате.
Кстати интересно, а вы пробовали написать что-нибудь на Kotlin? Особенно в совокупности с gradle?
Я всё жду статью, которая объяснит мне, зачем это делать. Пока лишь вижу какую-то субъективщину и вкусовщину. К тому же ряд возможностей scala, которые некоторые пытаются занести в недостатки, мне нравятся и их будет не хватать. Тот же implicit можно использовать безопасно и удобно в куче сценариев. А без pattern matching'а вообще не понятно как писать компактный код, это ж java какая-то получается.
Всё что я увидел из этой статьи, по большому счету, что kotlin нравится тем, что в нем нет некоторых возможностей scala и парой мест, где дело исключительно во вкусе. И, получается, что из-за этого некоторая компания год назад перешла с одного языка на другой. И при этом почти сразу после появления второго языка. Есть подозрение, что если эта компания и существует, то состоит она примерно из одного сотрудника.
Советую посмотреть доклад Антона Кекса «Anton Keks — Kotlin in real projects: pragmatic opinion on pragmatic language (Ru)»

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

Спасибо, прочитал с удовольствием, словно в университет обратно вернулся.
У меня такой вопрос — а почему Python? Есть же куча средств, где всё это реализовано библиотеками.
Ну вот, скажем, на LabVIEV Levenberg-Marquardt прямо из коробки.
Смотрите, как симпатично получается:


Я вовсе не холивара ради, просто это экономит огромную кучу времени. Даже с применением Anaconda (спасибо за наводку) вам пришлось написать некоторое количество обвязки плюс код для рисования графиков… Ну или Matlab как-то больше ожидаешь увидеть для решения подобных задач.
Matlab, например, платный. В Python есть замечательный пакет SciPy, в котором как раз реализовано множество оптимизационных алгоритмов — глобальных/локальных, условных/безусловных…
«Постепенно задача усложняется: для декомпозиции дается проект, в котором есть только прототип. Затем — стандартное техническое задание, потом — плохое и сложное ТЗ.»
В конце гуру определяет сроки по мычанию заказчика с учетом всех хотелок его левой пятки, который появятся в будущем.
Искуственные нейронные сети(ИНС) хорошо справляются с задачими кластеризации, классификации данных. Данные, как вы понимаете, могут иметь абсолютно любую природу, в дальнейшем они все равно представляются в виде векторов (= Другое дело: выбор ИНС для конкретной задачи: распознавание образов, прогнозирование, кластеризация… На сегодняшний день ИНС различных архитектур довольно много, и несмотря на общие принципы построения, у каждой ИНС есть свои плюс и минусы при решении определенных задач. Насколько я знаю, на сегодняшний день нет четко сформулированных шаблонов использования ИНС для решения определенных задач.
У нас к сожалению тоже не было отдельного курса по нейросетям (в отличии от соседней специальности), но все же мне довелось делать по ним курсовик.

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

Так вот, представим n-мерное пространство, где n — количество синапсов у нейрона. В рассмотренном выше примере n = 900. Входная информация, таким образом, представляет собой вектор в этом самом пространстве. Ну для простоты можете представить 3-х мерное пространство и 3-х мерные вектора. Правда сеть довольно тупая будет :).

Дык вот, память нейрона после обучения также представляется таким вектором, а вся сеть — эдаким облаком векторов в 900-мерном пространстве.

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

Собственно вся сложность в таком случае в адекватном обучении нейросети. Я делал довольно примитивную самообучающуюся сеть, уж не знаю насколько каноничная реализация получилась. В принципе наверное смогу накатать подобную этой статью.
Это, скорее, классификатор, но не ИНС. Он не сможет классифицировать изображение, которому его не обучали. Например, подсуньте ему горизонтальную линию — только такие он и сможет классифицировать, вертикальные уже нет.
Но вообще все доходчиво, если планируете усложняться и таки дойти до ИНС, то с удовольствием почитаю.
Ничего не знаю о нейросетях, кроме того, что прочёл в вашей статье. Но, как я понял из комментариев выше, вам к статье стоит дописать что-то такое: «Вот у нас получилась заготовка для нейросети. Пока что это ещё ей не является, но в следующей статье мы постараемся сделать из неё полноценную нейросеть
А мне ObjC как-то сразу понравился, хотя реальных проектов я на нем не делал.
Не синтаксис (он действительно вырвиглазный), а именно семантика. Возможность отправлять сообщения вместо вызова методов, динамика, рефлексия, возможность отправлять сообщения null-у. Всего этого мне очень не хватало в C++.
А Swift… он конечно аккуратный такой, но меня пугает, что в последней редакции они выкинули из языка даже такие основы основ как операции инкремента и декремента (++ и --). И не то чтобы сложно написать i=i+1, но вот для кого это было сделано? Как будто не для программеров, а для каких-то домохозяек, которых пугают непонятные символы.

Киллер-фича свифта — обратная совместимость с обж-с. К сожалению, это приводит к некоторым странным фичам: повсеместное позднее связывание, странная логика попадания имён аргументов в сигнатуры, многословные названия методов… И эти странности идут в компании с ломанием обратной совместимости (во второй версии просто взяли и поменяли смысл ключевого слова), сыростью компилятора (припоминаю статью с экспоненциальным ростом времени компиляции при использовании литералов словаря), кросс-платформенности как таковой нет… За рамками яблок смысла в свифте примерно ноль. Свифт пытается догнать современные языки, а не совершает революции.

Давайте по-честному: единственная причина успеха и вообще существования Swift — это необходимость иметь обратную совместимость с неимоверно вырвиглазным и отсталым Objective-C (см. ваш же скриншот из начала статьи). Если бы не жёсткие рамки обратной совместимости вкупе с ущербностью Objective-C, никакого Swift не было бы. Был бы Objectve-C нормальным — никто бы с него не переходил из-за смутных плюсов; не было бы обратной совместимости — никто не стал бы выкидывать тонны написанного кода. Просто Swift дал возможность огромному числу программистов писать на нормальном языке.


Вот когда Swift кому-то понадобится за рамками яблочных платформ, можете начинать заливать про революционность, стимулы и далее по списку и сравнивать с Java, которая отжала огромный кусок от C++ именно за счёт новых подходов; ну или хотя бы с C#, который как Java, только нормальнее. Пока же этот Swift со всеми своими "стимулами" никому не нужен за рамками яблочных платформ.


Скорость с питоном они сравнивают, ох...

UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here

Information

Rating
Does not participate
Registered
Activity