
1047.08
Общий рейтинг
Программирование *
Искусство создания компьютерных программ
Сначала показывать
Порог рейтинга
Уровень сложности
Покорим Ruby вместе! Капля третья
4 мин
28KКапаем дальше. В третьей капле (капля первая, капля вторая) мы познакомимся с числовыми переменными и узнаем о принципах ООП.
В программировании выражением (expression) называется комбинация чисел, операторов и переменных, которая, будучи понята компьютером, дает результат в какой-либо форме. Вот несколько примеров:
Числа и Выражения
В программировании выражением (expression) называется комбинация чисел, операторов и переменных, которая, будучи понята компьютером, дает результат в какой-либо форме. Вот несколько примеров:
+45
Покорим Ruby вместе! Капля вторая
3 мин
45KПродолжаем изучать Ruby? Так точно!
В первой части мы получили обзорные знания о Руби и Рельсах и, надеюсь, решили, нужно ли нам это, или нет. Так как мы взялись за язык основательно необходимо обустроитьрабочее учебное место. Нам нужны: сам интерпретатор Ruby, фрэймворк Rails, база данных (MySQL, думаю, будет лучшим выбором) и непосредственно среда разработки, которая должна сделать процесс программирования приятным, удобным и увлекательным ;)
В первой части мы получили обзорные знания о Руби и Рельсах и, надеюсь, решили, нужно ли нам это, или нет. Так как мы взялись за язык основательно необходимо обустроить
+37
Покорим Ruby вместе! Капля первая
3 мин
39KДабы сразу определить целевую аудиторию этого цикла заметок-статей-поучений пару слов о себе. Бывший школьник, будущий студент, в программинге толком ничего не смыслю, хотя есть пара сайтиков на готовых движках. В php-скриптах могу чего-нить лишнее удалить, изменить, но написать что-то с чистого листа — это не ко мне. Неоднократно пытался научится мастерству создания программ, но обычно тормозил как только дело доходило до ООП (видел в коде эти многочисленные классы, в пособиях всякие «объекты», «инкапсуляции» и т.п. и зависал...)
Собственно точно такое же желание появилось и сейчас. Порыскав по сети в поисках «чего-бы такого интересного выучить» наткнулся именно на Ruby с его рельсами. По словам спецов разного качества Руби сейчас актуален, программировать на нем быстро, это полный ООП (что перспективно в дальнейшем покорении олимпа программирования), синтаксис несложен… В то же время язык — тормоз, нагружает систему, twitter в нем барахтается, пытаясь удержаться на плаву, постоянные проблемы с хостингом. Но я вроде как стартапить в многомиллионную аудиторию не собираюсь, а для общего образования всегда подойдет.
Так что стоит признаться, что и Ruby я знаю совсем каплю, но уверен, что и мои «капли» будут интересны некоторым индивидам, подобным мне. Я могу (и буду) часто ошибаться в каких-то понятиях, методах, но мы ведь готовы помогать друг другу? Вроде бы как Хабр — это элита ИТ, но я думаю, что местные спецы не будут против, если мы тут с начинающими ребятами немного «потусим» :)
Собственно в этой серии статей мы будем капля за каплей наполнять стаканчик знаниями о Руби, наполнять будем вместе — для меня это также станет дополнительным стимулом не бросать занятия. Надеюсь, что и вам будет интересно! Начнем?
Собственно точно такое же желание появилось и сейчас. Порыскав по сети в поисках «чего-бы такого интересного выучить» наткнулся именно на Ruby с его рельсами. По словам спецов разного качества Руби сейчас актуален, программировать на нем быстро, это полный ООП (что перспективно в дальнейшем покорении олимпа программирования), синтаксис несложен… В то же время язык — тормоз, нагружает систему, twitter в нем барахтается, пытаясь удержаться на плаву, постоянные проблемы с хостингом. Но я вроде как стартапить в многомиллионную аудиторию не собираюсь, а для общего образования всегда подойдет.
Так что стоит признаться, что и Ruby я знаю совсем каплю, но уверен, что и мои «капли» будут интересны некоторым индивидам, подобным мне. Я могу (и буду) часто ошибаться в каких-то понятиях, методах, но мы ведь готовы помогать друг другу? Вроде бы как Хабр — это элита ИТ, но я думаю, что местные спецы не будут против, если мы тут с начинающими ребятами немного «потусим» :)
Собственно в этой серии статей мы будем капля за каплей наполнять стаканчик знаниями о Руби, наполнять будем вместе — для меня это также станет дополнительным стимулом не бросать занятия. Надеюсь, что и вам будет интересно! Начнем?
+50
Если бы языки программирования были религиями…
4 мин
13KПеревод
С удивлением обнаружил, что в интернете не было перевода на русский довольно забавной статейки, написанной неким Rodrigo Braz Monteiro, в которой он сравнивает языки программирование и религии. Поэтому пришлось делать перевод самому, который ниже и прилагается.
Автору написание этой статьи навеяло сравнение языков программирования с автомобилями(оригинал), а мне это навеяло перевод…
Автору написание этой статьи навеяло сравнение языков программирования с автомобилями(оригинал), а мне это навеяло перевод…
+200
Обзор LLVM
13 мин
87KLLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».
LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.
В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.
LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.
Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.
Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.
В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.
LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.
Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.
Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
+50
C++/CLI — «клейкий» язык
5 мин
42KВ этом топике я расскажу про C++/CLI — промежуточный язык для склеивания кода на C/C++ и .NET
Это довольно распространённая задача, ведь на C/C++ написаны тонны проверенного временем высокопроизводительного кода, который невозможно переписать на управляемые языки.
Наша задача — обеспечить .NET-интерфейс к этим библиотекам. Но как это сделать, если они написаны на C/C++?
Microsoft предлагает два варианта решения проблемы.
Это довольно распространённая задача, ведь на C/C++ написаны тонны проверенного временем высокопроизводительного кода, который невозможно переписать на управляемые языки.
Наша задача — обеспечить .NET-интерфейс к этим библиотекам. Но как это сделать, если они написаны на C/C++?
Microsoft предлагает два варианта решения проблемы.
+40
Болезнь, Nemerle
3 мин
8.9K
Nemerle — язык под .NET, который поддерживает три парадигмы программирования: та, которую большинство программистов считает за ООП парадигму, функциональную парадигму (алгебраические типы данных, pattern-matching) и метапрограммирование (АОП, квазицитирование, расширение синтаксиса самого nemerle через макросы a-la lisp ). Все это положено на рельсы строгой статической типизации и приправлено мощной системой вывода типов. +45
Для начала или вводный курс в эзотерический язык
3 мин
2.7KЭто конечно же хобби, хотя...
Brainfuck придуман Урбаном Мюллером в 1993 году, в основном для забавы. Уникальный, вполне себе интересный Тьюринг-полный язык программирования с размером компилятора в 240 байт! В нём используется всего лишь 8 команд, каждая из них записывается одним символом. Программа на языке Brainfuck представляет собой последовательность этих самых команд.
Машина, которой управляют команды Brainfuck, состоит из упорядоченного набора ячеек и указателя текущей ячейки, получается что-то вроде стека и смещения в нём. Так же реализована возможность механизма ввода-вывода, далее будет понятно на примере.
+35
+76
+63
Чистые функции
2 мин
16KЧистые функции имеют ряд интересных и полезных свойств. Всё просто. Они зависят только от своих параметров. И возвращают только свой результат. В языке программирования D возможно следующее:
- Нельзя писать в глобальную переменную. Или в переменную, которая стала персистентной вне этой функции.
- Такие переменные не могут быть прочитаны, пока они не станут инвариантными. Под инвариантностью имеется в виду неизменяемость.
- Чистые функции могут вызывать только чистые функции.
- Параметры в чистых функциях могут быть неизменяемыми. При этом вызов к такой функции не может быть кеширован или вызван асинхронно, если параметры ссылаются на изменяемые данные.
- Чистая функция может вызывать исключение.
+32
+75
Ближайшие события
Игровое программирование в Light Bot
1 мин
3.3KLight Bot — забавная браузерная игра на флеше, где вам необходимо запрограммировать своего бота на выполнение простой задачи: дойти до цели минуя все препятствия.
+95
Фридрих Энгельс и язык программирования С++
2 мин
1.3KНе так давно я вспоминал старые времена в статье «История одного программиста или путь от простого до точки» (части первая и вторая). По мере написания вспоминались многие забавные и не очень вещи, которые случались в прошлом. Об одной из таких вещей я и хотел рассказать.
Казалось бы, какая связь может быть между Фридрихом Энгельсом и языком С++. Я тоже и подумать не мог что такая связь минимальная, микроскопическая, но в нашем огромном мире все-таки существует. Чтобы узнать больше — проследуйте под кат. Но предупреждаю, под катом десяток ссылок на фотографии.
Казалось бы, какая связь может быть между Фридрихом Энгельсом и языком С++. Я тоже и подумать не мог что такая связь минимальная, микроскопическая, но в нашем огромном мире все-таки существует. Чтобы узнать больше — проследуйте под кат. Но предупреждаю, под катом десяток ссылок на фотографии.
+111
О комментариях в коде
1 мин
699Комментарии в своём коде нужно писать не для себя, а для человека, который этот код увидит впервые. Потому что очень скоро этим человеком станешь ты сам.
+51
Программистская шутка к празднику
1 мин
2.9KВ мире есть только 10 категории людей — это те, кто понимает двоичный код и те, кто его не понимает.
С праздником всех, кто понял шутку!
С праздником всех, кто понял шутку!
+152
День программиста
1 мин
1.3KЗавтра, 12 сентября, будет День программиста — неофициальный праздник программистов, отмечаемый на 256-й день года. Число 256 (два в восьмой степени) выбрано потому, что это количество чисел, которые можно выразить с помощью одного байта. В високосные годы этот праздник попадает на 12 сентября, в невисокосные — на 13 сентября.


+118
История одного программиста или путь от простого до точки. Часть вторая, заключение
11 мин
3.6K
Это вторая и заключительная часть. Рекомендую ознакомится с началом, чтобы не потерять нить повествования.
Первая часть эссе рассказывала о давних временах, о вещах, которых уже нет или таких, которые забыты. Многое из этого знакомо не только мне и многочисленные комментарии тому подтверждение. Однако, в заключительной части речь пойдет о другом, о вещах которые для многих программистов являются повседневными. Это часть эссе будет отличаться от начала и это отличие будет заключаться в том, что я расскажу свою историю того, как наше настоящее для меня произошло из будущего. В этой части эссе прошлое уступает место настоящему.
+99
История одного программиста или путь от простого до точки
8 мин
4.2K
Представленный под катом текст — это попытка в художественной форме рассказать этапы своей программистской жизни. Местами разбавленное случаями из жизни, размышлениями вслух, настальгированием по прежним временам, это эссе в тоже время имеет своей целью поднять диалог с хабраюзерами, которые не прочь рассказать о своем пути разработчика и поделится своими мыслями по поводу истории развития средств и языков разработки.
+151
Вклад авторов
ru_vds 4382.8badcasedaily1 3690.0olegchir 3644.4haqreu 3089.0tangro 2672.2nmivan 2585.0kesn 2578.0Bright_Translate 2545.5MaxRokatansky 2535.1

