Обновить
1114.57

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

История ИТ моими глазами

Время на прочтение4 мин
Охват и читатели3.5K

Начиная разработчиком на тогда еще сверх продвинутом IDE от компании Borland, bc++ 3.11, работающая в операционной системе DOS, в которой тогда единственное, чего не хватало — так это поддержки dos4gw (который вышел, если мне не изменяет память, парой годами позже), я любил эту IDE и мне казалось, что на ней можно сделать все что угодно. Была куча драйверов, которые писались энтузиастами, меняющие шрифты консоли, кодировку, была целая система работы с памятью… Прорывом были отгружаемые динамически библиотеки на диск, созданные чтобы вмесить все в память. Сегменты (ну, современные программисты, что такое сегменты оперативной памяти, и откуда 640К?), нижняя память, верхняя память… 640 килобайт… Люди придумывали все новые задачи компьютерам, а гении своего дела эти компьютеры придумывали. И ведь на самом-то деле это не так давно было… Это было почти вчера.
Читать дальше →

30 лет программирования в лицах

Время на прочтение5 мин
Охват и читатели2.2K
Статья без начала, в которой автор рассказывает о невыносимых типажах людей, с которыми он работал за последние 30 лет, с эпилогом переводчика

Я закончил колледж 30 лет назад. Моей первой работой была разработка испытательной аппаратуры для Univac. Это были бы замечательные времена, если бы не…

Грег Скрытный


Здесь я впервые столкнулся с человеком, который считал, что не помогать другим и не отвечать на вопросы — это некая форма гарантии занятости — его занятости.

Однажды я рассказал в общих чертах о проекте, которым я собирался заняться. Грег внимательно выслушал и сказал то же, что и обычно: ничего. Я провозился с реализацией неделю или две, пока не обнаружил, что мой подход в корне неверен. Я спросил об этом Грега, и он ответил, что для него это было очевидно с первого взгляда. Знаете, он ничего не сказал мне! Будь я его боссом, я бы его уволил.

Читать дальше →

10 вещей, которые никогда не преподаются программистам в вузах

Время на прочтение2 мин
Охват и читатели9.9K
10 вещей, которые никогда не преподаются программистам в вузах.

1. Мы не правы


Программисты зачастую имеют большое эго. Поэтому часто бывает трудно осознать, что мы не правы в чем-то. Я видел много споров относительно архитектуры проектов, где разработчики расхваливают свои идеи. Но, предположим, что мы все неправы. И отличаемся только в степени своих заблуждений.
Очень важно осознать и принять этот факт только один раз и мы будем открыты, чтобы выслушать других и использовать свои идеи, чтобы создать лучшее решение.

далее

Правильный инструмент

Время на прочтение1 мин
Охват и читатели1.4K
Некоторое время назад я натолкнулся на сайт "TheRightTool" — эдакий рейтинг языков программирования на соответствие разным утверждениям, например: «На этом языке легко писать эффективный код». Сразу понятно, что такой рейтинг очень полезен (хотя интерфейс у них — беда — на третьем вопросе мне надоело переставлять языки).

Я попытался на своем блоге дать ссылки на автоперевод, но понятное дело, что он оставляет желать лучшего. Но ведь русские (вполне возможно) больше всех знают о языках программирования! А больше всего программистов на Хабре.

Итак, сегодня в течение часиков пяти мне было заняться нечем, так что, дорогой Хабр, встречай русский аналог (на слабеньком VPS, так что рано или поздно сдохнет под Хабраэффектом — извиняйте, ставьте закладку, заходите завтра):



Надеюсь скоро мы, коллективным 4-хлетним Хабраразумом, узнаем — какие языки для чего можно использовать.

Читать дальше →

Как меняются взгляды

Время на прочтение1 мин
Охват и читатели552
Программист, опыт работы 1 год:
— Нет такой технологии, которую я бы не смог освоить!

Программист, опыт работы 10 лет:
— Нет такой технологии, без которой я бы не смог обойтись…

«The Simdsons» — немного о семействе векторных инструкций SIMD

Время на прочтение4 мин
Охват и читатели15K
image
Когда я впервые увидела этот мультфильм, то абсолютно не впечатлилась. Какие-то желтые (хорошо хоть не зеленые) человечки с выпученными глазами, сюжет не особенно интересный, шутки несмешные…

Но вскоре все радикально изменилось. Нет, «Симпсоны» остались теми же, зато я провела около месяца в командировке в мир Симпсонов — США, где наконец поняла, почему этот сериал многие считают лучшим. «The Simpsons» — действительно прекрасная пародия на американский образ жизни от мелочей до глобальных вопросов, это и юмор и философия и еще много отличных поводов для просмотра.

К чему это я? А к тому, что наверняка первое знакомство с семейством векторных инструкций SIMD (и, в частности, SSE) многих программистов не впечатлило. Какие-то новые инструкции с выпученными длинными регистрами, одновременно работающие над группой данных, возни много, а толку, скорее всего, мало…

Попробую радикально изменить это представление. Нет, я не буду убеждать вас, что SSE — прекрасное средство оптимизации приложений. Пойду другим путем. В Симпсонах — 21 сезон (кстати, это — самый длинный сериал в истории американского ТВ). В честь этого я приведу 21 интересный факт про Intel SIMD. Надеюсь, что действительно интересный — даже знатокам SIMD.
Читать дальше →

Трудности перевода: когда 2*2=5

Время на прочтение1 мин
Охват и читатели1.4K
Представьте себе: ваш племянник спрашивает у вас, сколько будет 2*2+1. Вам не до того, и вы переадресовываете вопрос своему интерпретатору, который честно отвечает: 6. Внимание, вопрос: благодаря какому языку программирования ваш племянник завтра получит двойку?
Читать дальше →

Какой язык учить?

Время на прочтение1 мин
Охват и читатели2.5K
Хочешь программировать на выразительном и мощном языке: Python
Нужно по-быстрому веб-сайт: PHP
Желаешь в тусовку зовущих себя «рок-звездами» программирования: Ruby
Реально нужно научиться программировать: C
Ищешь просветления: Scheme
Уйти в хандру: SQL
Потерять одну хромосому: Microsoft Visual Basic
Для получения постоянной, заурядной, но хорошо оплачиваемой работы по созданию финансовых приложений в офисной загородке под лампами дневного света: Java
Тоже самое, но с аббревиатурами и списком сертификатов в своей подписи: C#
Получить волшебное ощущение детского изумления, которое сложно отличить от мании величия: Objective C

оригинал (en)

Жемчужины функционального программирования: рисуем деревья

Время на прочтение15 мин
Охват и читатели5.5K
В этой статье я собираюсь поведать читателям о рисовании деревьев. Нет, не тех деревьев, которые растут из почвы и в которых селятся белки. Сегодня мы будем визуализировать деревья как структуры данных. Данная статья написана по мотивам статьи Andrew Kennedy «Functional Pearls: Drawing Trees» из журнала Journal of Functional Programming, 6(3): 527-534, Cambridge University Press, May 1996 (электронная версия статьи тут), и является, в некотором роде, её переводом.
Читать дальше →

Привет из свободного от libc мира! (Часть 1)

Время на прочтение5 мин
Охват и читатели31K
В качестве упражнения я хочу написать программу на С. Достаточно простую для того, чтобы дизассемблировать ее и объяснить весь код самой себе.

Звучит несложно, правильно?

У читателя предполагается наличие опыта компиляции программ и работы в Линуксе. Небольшое умение читать ассемблерный код тоже пригодится.
Читать дальше →

Когда программисту надоедает программирование

Время на прочтение3 мин
Охват и читатели11K
С год назад я столкнулся со странной «проблемой». Уже 7 лет как я занимаюсь программированием. Постепенно начал замечать «спад активности» — учить новое не хочется, рутиной заниматься не просто лень, а мега-лень, базы данных и обработка XML — в печенках уже сидит. И вдруг неожиданно понимаю, что программирование мне… надоело.

image

Что теперь делать? Как быть? Кто виноват? Ведь программирование — это то, что я всегда и больше всего любил. А самое важное — это то, чем я зарабатываю на жизнь. И больше не могу «это» делать.

Я попытаюсь рассмотреть проблему со всех сторон. Начнем с грустного.

Читать дальше →

Популярность языков по stackoverflow

Время на прочтение1 мин
Охват и читатели2.8K
Меня всегда смущал отчет от Tiobe, ну не похож он на правду. Ну хотя бы потому что Delphi на 9 месте, а javascript на 10, т.е. последнее и предпослениее места в top-10. И это в наше то время развития web 2.0, ну явно ведь должно быть в ином порядке. Ну и по остальным языкам все как то подозрительно. А что же на самом деле, что сейчас популярно у продвинутых программистов? А определить оказалось довольно просто, достаточно заглянуть на stackoverflow.com и посмотреть популярность тегов (они там четко к языкам прикреплены, есть куча модераторов отслеживающих правильность тегов)
top10 языков по меркам stackoverflow

Ближайшие события

Принцип подстановки Барбары Лисков

Время на прочтение6 мин
Охват и читатели165K
Привет, хабрачеловеки!

Захотелось вот поделиться сокровенным знанием по этой теме. К тому же материалов по этому, достаточно важному принципу проектирования классов и их наследования, в Рунете как-то негусто. Имеются формулировки вида:

«Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.» © Wikipedia

Но они выносят мой мозг меня совершенно не радуют.

Если хочется услышать объяснение этой хрени умной фразы — прошу под кат.
Читать дальше →

Смех сквозь слёзы: Всеукраинский конкурс по информационным технологиям

Время на прочтение4 мин
Охват и читатели3.3K
Привет, хабрачеловек! Мне довелось принимать участие в «Всеукраинском конкурсе молодежи по информационным технологиям», в номинации «Web-программирование», который в этом году проходил в городе Бровары, не далеко от Киева. То, что я там увидел — меня, откровенно говоря, повергло в шок. Подробнее — под катом.
Читать дальше →

Программирование в таблицах — новая концепция записи условных (и не только) конструкций

Время на прочтение8 мин
Охват и читатели6.6K
Не так давно, в процессе поиска в сети альтернативных подходов к программированию я наткнулся на очень интересное видео. Это 40-минутная презентация с интригующим названием «No Ifs, Ands, or Buts. Uncovering the Simplicity of Conditionals». Автор презентации Джонатан Эдвардс (Jonathan Edwards) рассказывает о новой концепции записи условных конструкций при помощи созданных им схематических таблиц (schematic tables).

Эта тема должна быть интересна всем, кто хоть немного интересуется программированием. Если у вас нет в распоряжении лишних сорока минут или вы не можете посмотреть видео по какой-либо другой причине, предлагаю ознакомиться с моим кратким пересказом презентации Джонатана.
Читать дальше →

Январский рейтинг языков программирования

Время на прочтение2 мин
Охват и читатели15K
Голландская компания TIOBE представила очередной рейтинг языков программирования. Рейтинг строится по данным популярных поисковых систем о количестве разработчиков и компаний, использующих язык, а также о количестве обучающих курсов по этому языку.

Итак, что же нового в январском рейтинге? В первую очередь это появление в нём языка Go. И не просто появление — он стал языком 2009 года по версии TIOBE. Популярность Go выросла на 1,25% с момента его появления в ноябре 2009-го и на сегодня он занимает 13-ую строчку рейтинга.

Следом за Go по скорости популяризации идёт Objective-C от Apple, отставший всего на сотую долю процента. Objective-C существует уже давно, но вернул свою популярность благодаря iPhone.

Интересен также рост популярности PHP, который опустил С++ и Visual Basic на строчку ниже. Помимо языков от Google и Apple в 2009 высокого уровня достигли C# от Microsoft и ActionScript от Adobe. Что касается Java, то он по прежнему остался на первой строчке, хотя его популярность продолжает падать.
Итак, сам рейтинг

CPrompt — интерпретатор языка си

Время на прочтение3 мин
Охват и читатели7.3K
С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
интересно?

За что я люблю программирование

Время на прочтение3 мин
Охват и читатели10K
Когда я был маленьким, я очень любил писать программы. Интерес был вызван, скорее, обидой. Почему это компьютер умнее меня? И игрой. Игрой, заставить его, компьютер, делать то что я хочу. Ты нажимаешь кнопку, а он говорит что не так, ты правишь ошибку, а он говорит что опять не так… И вот оно запустилось. А счастья нет. Ты начинаешь разбираться… искать… Ты чувствуешь себя строителем мира, так мне тогда казалось. Мне казалось что я создаю свою вселенную… Свой маленький мир…

Читать дальше →

Scala. Введение

Время на прочтение12 мин
Охват и читатели90K
Привет хабралюди.

Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
По возможности коротко о кажется главном

Вклад авторов