Согласитесь, что логичней было бы, если сравнение идет по LeapFrog, привести с ним фотографию…
Кстати, выше товарищ let_wit_make_it отписал по некорректности фото у MakerBot.
В реале, печатал и тем и другим и могу сказать, что отличий по качеству там минимум. Хотя и цена у них примерно на одном уровне. По качеству фото так даже UP Mini дешевый не печатает.
Полностью согласен. Сразу видно, что вы печатали не пару тестовых деталей.
Только описали причины тряски стола странно. Главная причина нестабильной печати на высоких скоростях, что стол большой, а удерживается только с одной стороны. Это действительно упущение, которое, я надеялся, решат к выходу второго Ультимейкера. Увы, не случилось.
И, кстати, последняя Cura 14 делает G-код ненамного быстрее предыдущей Cura 13.
Принтер нормальный, но его цена в России невменяемая с учетом полного отсутствия поддержки и запчастей. Пусть даже был бы таким, какой есть, но хотя бы тысяч на 50 дешевле — и было бы, о чём говорить.
За 85 тысяч больно дорогое развлечение для детей. В этой категории можно купить уже неплохой отечественный принтер. Есть неплохой обзор принтеров, где кое что и о нем расписано. По моему опыту- оказалось, что это единственный принтер, который лучше печатает пластиком АВS, чем PLA. У него пупырышки в столе и они хорошо «прихватывают» ABS, правда потом отодрать его-стоит больших усилий.
Мой опыт использования Replicator подтверждает ваши слова, слабый захват нити, отсутствие второго экструдера, однозначно, главный минус. Неплохо в этой статье написали.Там еще не все перечислили. Косяков в принтере еще многовто.
И стоит заметить, что несмотря на то, что мы с таким языком получаем некоторые плюсы статической типизации, при этом теряется большая часть (но не все) динамической.
var x = 1;
if (something)
x = 'Hello!';
else
x = Complex(1, 3);
Язык с динамической явной типзацией
var x: Integer = 1;
if (something)
x: String = 'Hello!';
else
x: Complex = Complex(1, 3);
Таким образом можно перенести в динамическую типизацию некоторые преимущества статической (например x: String = 3; компилироваться/интерпретироваться не будет), т.е. программист должен будет явно указывать когда хочет запихнуть в переменную значение другого типа, что можно использовать и для проверки ошибок, и для оптимизации.
В чистом Си — слабая типизация, в С++ же была взята его база и были изменены некоторые правила, из-за чего появились как черты как сильной так и слабой типизации.
На здоровье! Нарассказывать действительно можно много: и про типизацию Хиндли-Милнера, и про автоматический вывод типов, и про безопасную типизацию (как раз что-то среднее между слабой и сильной), ну и конечно можно привести больше примеров кода — показать, где тот или иной вид типизации помогает писать код, а где — мешает.
Плюс, можно поподробнее описать как те или иные виды типизации реализованы различных языках программирования.
Однако статья итак вышла длинной, а парадигмы программирования — еще более глубокая тема.
В любом случае я хотел донести до читателя только те знания, которые с помогут в программировании, и что главное, будут интересны каждому. И в следующей статье я также попытаюсь извлечь из большой темы самую полезную и интересную информацию.
Да и про ООП языки вроде Java и C# нельзя сказать, что они статически типизированы.
Например если функция имеет сигнатуру A do_something( B b, C c ); то мы не можем быть уверены в том, что будут переданы именно экземпляры B и C, а возвращен экземпляр A, т.к. на деле там могут быть наследники этих классов или даже null.
Конечно в общем случае это статическая типизация, однако черты динамической так же присутствуют.
Ух. Как раз сейчас учу этот дивный язык. В целом можно сказать, что типизация в нем статическая, строгая, неявная.
Хотя по-поводу явности/неявности сложно что-либо сказать, т.к. для var и val тип указывать не нужно (неявная с опциональной явностью), а для def нужно указывать типы аргументов (полностью явная).
Кстати, выше товарищ let_wit_make_it отписал по некорректности фото у MakerBot.
В реале, печатал и тем и другим и могу сказать, что отличий по качеству там минимум. Хотя и цена у них примерно на одном уровне. По качеству фото так даже UP Mini дешевый не печатает.
Только описали причины тряски стола странно. Главная причина нестабильной печати на высоких скоростях, что стол большой, а удерживается только с одной стороны. Это действительно упущение, которое, я надеялся, решат к выходу второго Ультимейкера. Увы, не случилось.
И, кстати, последняя Cura 14 делает G-код ненамного быстрее предыдущей Cura 13.
Принтер нормальный, но его цена в России невменяемая с учетом полного отсутствия поддержки и запчастей. Пусть даже был бы таким, какой есть, но хотя бы тысяч на 50 дешевле — и было бы, о чём говорить.
get_month_number( s: String ) -> Number;
А там уже пиши как хочешь, хоть изящно, хоть «в лоб», хоть с сотней грязных хаков.
Язык с динамической неявной типизацией:
Язык с динамической явной типзацией
Таким образом можно перенести в динамическую типизацию некоторые преимущества статической (например
x: String = 3;
компилироваться/интерпретироваться не будет), т.е. программист должен будет явно указывать когда хочет запихнуть в переменную значение другого типа, что можно использовать и для проверки ошибок, и для оптимизации.А вообще, все это — proof of concept.
Спасибо, хороший пункт, добавлю в статью.
Однако это устоявшийся термин, плюс, я не знаю чем бы его можно было заменить.
Плюс, можно поподробнее описать как те или иные виды типизации реализованы различных языках программирования.
Однако статья итак вышла длинной, а парадигмы программирования — еще более глубокая тема.
В любом случае я хотел донести до читателя только те знания, которые с помогут в программировании, и что главное, будут интересны каждому. И в следующей статье я также попытаюсь извлечь из большой темы самую полезную и интересную информацию.
Например если функция имеет сигнатуру
A do_something( B b, C c );
то мы не можем быть уверены в том, что будут переданы именно экземпляры B и C, а возвращен экземпляр A, т.к. на деле там могут быть наследники этих классов или даже null.Конечно в общем случае это статическая типизация, однако черты динамической так же присутствуют.
«Также нужно упомянуть, что многие статические языки позволяют использовать динамическую типизацию, например:
C# поддерживает псевдо-тип dynamic.
...»
Хотя по-поводу явности/неявности сложно что-либо сказать, т.к. для var и val тип указывать не нужно (неявная с опциональной явностью), а для def нужно указывать типы аргументов (полностью явная).