неформальный опрос (первая программа)
Aug. 8th, 2002 10:42 amДорогие программисты и программистки (а также те, кто к программистам себя не причисляет, но программы писать умеет)!
Расскажите, пожалуйста, о своей первой нетривиальной программе ("нетривиальной" можно понимать, как вам удобно). На каком языка она была написана, что делала, на каком компьютере бежала, сколько вам тогда было лет? Конечно, можно рассказать только часть этой информации или, наоборот, подробнее.
Здесь уже набралось несколько интересных рассказов, но было бы здорово ещё почитать. Мне это ни для чего конкретного не нужно -- просто, по-моему, интересная тема.
Расскажите, пожалуйста, о своей первой нетривиальной программе ("нетривиальной" можно понимать, как вам удобно). На каком языка она была написана, что делала, на каком компьютере бежала, сколько вам тогда было лет? Конечно, можно рассказать только часть этой информации или, наоборот, подробнее.
Здесь уже набралось несколько интересных рассказов, но было бы здорово ещё почитать. Мне это ни для чего конкретного не нужно -- просто, по-моему, интересная тема.
no subject
Date: 2002-08-08 12:48 am (UTC)no subject
Date: 2002-08-08 05:21 am (UTC)no subject
Date: 2002-08-08 01:01 am (UTC)Собственно, не так давно программа (ценой немалых усилий) была реанимирована, скомпилирована и выложена на сайт. Посмотреть можно здесь:
http://yole.ru/files/CDSEdit.zip
no subject
Date: 2002-08-08 01:11 am (UTC)no subject
Date: 2002-08-08 01:12 am (UTC)Впрочем, я был не программистом, а постановщиком..
INSTR in 6502
no subject
Date: 2002-08-08 01:24 am (UTC)хранилась на аудиокассете.
no subject
Вторая и третья _нетривиальные_ программы были написаны тоже на Бейсике. Но уже на одном из диалектов Quick. Совместно с приятелем Колей Волынским. Нетривиальности были чисто технические - на этих ДОСовских бейсиках мы реализовали палитровые эффекты, VESA-режимы и проигрывание wav-файлов (пародия на Windows - SortirOS; мы уже учились в институте). Третья была замечательна тем, что это была текстовая игрушка с мультиплейером через модем. А в остальном мне всегда больше нравилось ставить задачи, а не решать их до конца. :)
no subject
Date: 2002-08-08 01:37 am (UTC)no subject
Date: 2002-08-08 01:42 am (UTC)Это был сентябрь 1983 года. Мне 26 лет. Я отслужив два года офицером в Сов. Армии, не пошёл в школу преподавать физику по своей специальности. Прочитал объявление "требуются программисты" и пошёл устраиваться в проектный институт. Сказал, что ничего не умею, но очень хочу научиться. Меня взяли оператором ЭВМ. Так у меня появилась возможность учиться программировать на реальной ЭВМ. Через полгода я уже был программистом, а через полтора года руководителем группы системного программирования.
Первая нетривиальная программа была в той же конторе: система учёта машинного времени средствами СУБД ADABAS. Программа закачивала данные на выходе системной утилиты ЕС ЭВМ (IBM 360/370) в СУБД ADABAS.
Ещё раз запишу,
Date: 2002-08-08 02:36 am (UTC)Моя первая программа (http://www.livejournal.com/talkpost.bml?journal=antonme&itemid=23019)
no subject
Date: 2002-08-08 02:51 am (UTC)my parental unit was angry at me for some reason and decided to punish me by not allowing me to use the computer. Therefore they locked it with a password on CMOS BIOS.
Not wanting to take the chance of removing the CMOS battery, I applied an alternative tactic, which was going to a friend of mine and writing this program, which emulated failure to load and re-requested the password (2 times, to make sure the entered password was correct). The most tricky part was to emulate the * symbols appearing on the screen instead of the letters entered. Then the program just wrote the password into a file.
So I made this diskette, made an autoexec.bat file which'd load the program, left the diskette in the drive and made sure it was there when parental unit needed the computer. The rest is history.
no subject
(no subject)
From:no subject
Date: 2002-08-08 03:08 am (UTC)no subject
A huge Soviet mainframe and a quiet warm room with 10 terminals, it's winter or late autumn
The first step-based strategy - I was ruling a whole kingdom by making decisions whether to declare war and how much grain to sell, etc.
I was ecstatic to see a real computer for the first time in my life and actually play a game on it.
1) Pascal, Polish mainframe MERA and square equations (around 12 y.o., 1988)
- Thick and huge Pascal guide next to my bed - falling in love with types and English words
- Solved my homework ax2+bx+c=0 :)
program mysquares (input, output) /* yes, you still had to write (input, output) on MERA */
var
a, b, c: integer;
x, ans: real;
begin
...
end.
2) ES1840 and Turbo Pascal 3.0 (13 y.o., 1989)
- Reading about those cool enhancements, the system, dos, crt and graph units.
- Amazed with graphics, dreaming of initGraph(); cga.bgi and egavga.bgi
- Making all those melodies
sound(440); /* first octave A */
delay(500);
nosound; /* first wrote nosound(); and then deleted the parenthesis ;) */
Free time: XONIX and TETRIS (I felt like I was falling in love with Pazhitnov)
3) MSX2 Basic, CP/M, Sony Trinitron (14 y.o., 1990)
- Beautiful computer! Large Trinitron screen, great colors (received in dad's laboratory for optical research, equipment later used on MIR station)
- Reading the manual in English for the first time! And enjoying it tremendously!
- Making CBT programs for my class (they had compatible Yamaha's)
- Drawing all those
for i=1 to 100
circle(100,100,i), 16
next i
- learning and using sprites
- writing and reading directly to/from memory using peek() and poke()
Free time: cool games - arcanoid, helicpoter, car race (each had a size 16KB and it was fully funcitonal and very cute!)
4) ES1841, IBM PC XT and Turbo Pascal 5.0 (14 y.o., same time, different room)
- Enjoying the enhancements of TurboPascal 5.0
- Writing a program for dad to calculate some polynoms (Legandre sp?).
5) IBM PC AT and Turbo Pascal 5.5 (15 y.o.)
- Wrote my first TSR (Terminate and Stay Resident)
- Instering some Assembler code
Free time: Formula, F-16, Prince of Persia
6) Pascal 6.0, Delphi, Object Pascal (17 y.o.)
- Learning OOP
- Learning Windows API. Making the first programs for Winodows
Free time: Dune 2
7) C, C++, LISP (1996-2000)
American University in Bulgaria, Computer Science department
- Somehow programming does not seem so enjoyable and "sacred" anymore, just a nice tool to achieve results, just something you do for university projects
8) HTML, CSS, JavaScript (1997-2000)
- First Web pages, first Web projects. That's the new media I fell in love with! (HomePage, Frgotten Europe, Litvania, Zdymki, etc.)
Free time: Web Web Web
9) ASP, VBScript, SQL
- Commercial Websites for NetAge.
Free time: Web Web Web (addiction)
10) JSP, Java
- An online banking project
Free time: almost none left :( (fighting the internet addiction :))
немножко другая нетривиальность
Date: 2002-08-08 04:05 am (UTC)не помню, наверное всетки турбо паскаль
кароче это была зачетная работа по информатике и нужно было совсем простецкую штуку сделать - типа пересчета из двоичной в дестяричную и шестнадцатеричную и обратно. Но мне было очень лень занимацца и воопще невтыкалось мне.
Я сделала на этом самом паскале ТАКОЙ ИНТЕРФЕЙС с ТАКИМИ заставками (чтобы показать что сделано)что наша преподавательница водила чуть не за руку моих одноклассников (будущих вмкшников и иже сн ими) - показывать как дела делаются.
ЯДРА у программы не было вовсе. Зато какая ИНСТРУКЦИЯ)
no subject
Date: 2002-08-08 04:13 am (UTC)1) Мастер-бутовый мультисистемный загрузчик, с менюшкой и таймаутом. На асме. До сих пор им пользуюсь.
2) Курсовик это был, тоже асм. TSR-прога, при помощи которой можно было прямоугольные области экрана на другое место копировать (картины а-ля ПикассО получались). Интересна была тем, что это была первая (и последняя) достаточно серьезная и объемная прога на асме, с кучей функций разного назначения и т.п.
no subject
Date: 2002-08-08 04:31 am (UTC)Вычисление пи, кстати, описывается у Уэзерелла (даже не знаю, как он пишется по-английски - книгу читал по-русски) в Этюдах для программистов. Там же есть такой этюд: написать программу, которая печатает свой собственный текст. Книгу я читал когда мне было лет 16. Программу написал уже будучи профессиональным программистом, лет в 25. Без никаких подсказок. Я был счастлив и немного горд.
no subject
Date: 2002-08-08 04:47 am (UTC)no subject
Date: 2002-08-08 04:53 am (UTC)Когда я был на первом курсе, у математиков была вычислительная практика - выдавали арифмометры "Феликс", и по коридорам на подоконниках и в темноватых углах сидели первокурсники и рычали феликсами; предприимчивые проникали без всяких прав в Вычислительную Лабораторию и быстренько считали на электрических Рейнметаллах.
Первая же записанная и пригодная для выполнения программа у меня была на Алголе для машины... машины... никогда ее не видел. М что-то такое, Один? Покойный Дейкстра говорил: мне все равно, как работает машина, электрически, пневматически или чудом.
Самое смешное, что программа была сравнительно большой (требовала двух резиночек и специального мешка), остроумной, рекурсивной, и только после недели безуспешных попыток я узнал, что этот компилятор не поддерживает рекурсию.
А еще через пару дней сообразил, что есть короткое решение, буквально царский путь, без всякой рекурсии.
Так болезненно и дальше была устроена моя программистская карьера, почти всегда, с поправкой на опыт, конечно - поэтому я хорошо знаю, что я надежный программист, но без присущей таланту таинственной интуиции.
Вторая программа была на Лиспе для очень современной, стильной машины Одра, набивалась на ленточках, а что именно делала, не помню.
no subject
Date: 2002-08-08 05:05 am (UTC)Получается треугольник.
Четыре точки координат, четыре линии. Треугольник.
Зову препода - мол, посмотрите, что здесь не так. Показываю код. Он смотрит на код и говорит, что, что бы я ни пыталась нарисовать, у меня должен получиться квадрат. Я радостно киваю и демонстрирую получившийся треугольник.
...В общем, над этим квардотреугольником билась вся группа во главе с преподом и так и не смогли сделать его квадратом. В чем там был глюк - до сих пор никто не знает. А препод через неделю уволился.
С тех пор стараюсь не программировать. На всякий случай.:)
(Хотя иногда по мелочам приходится).
Re: Вопрос
Date: 2002-08-08 05:10 am (UTC)Мне бы не хотелось эту запись портить не относящимися к делу сведениями, слишком уж интересные здесь истории рассказывают.
Re: Вопрос
From: (Anonymous) - Date: 2002-08-08 06:37 am (UTC) - ExpandRe: Вопрос
From:Гордость
Так вот в итоге мы написали под DOS 3.1 МНОГОЗАДАЧНУЮ ОПЕРАЦИОННУЮ ОБОЛОЧКУ на Клиппере :))
После запуска она выгружала нафиг command.com и работала с рессурсами напрямую через ассемблерные модули. Соответственно были почти полностью реализованы все возможности многозадачных операцинок, подсмотренных в Юниксе. Т.е. многотопочность, многозадачность, пайпы-семафоры, приоритезация задач и т.д. :)))))))) Работало это все на локальной сетке Орлан (была такая советсткая разработка в свое время), состоящей из 286 и XT'шек :))
Дело происходило в Питере, на АО Оптика.
На этом я защитил свой диплом (досрочно, кстати :))
Какая вещь была !!! Windows 3.0 близко не лежал ни по производительности, ни по функционалу :))
Это сила!
Date: 2002-08-08 06:32 am (UTC)Re: Это сила!
From:Re: Это сила!
From:Оригинального ничего.
Date: 2002-08-08 05:42 am (UTC)Но вот несколько лет назад усадили за Макинтош и дали пару месяцев на подготовку. К концу срока я должен был показать что-то красивое, работающее и нужное стране. ;) Документации нет. Та, что есть - очень устарела. Опыта за Маком нет вообще. В первый раз вижу. С перепугу потом демонстрировал программу учета сотрудников. Особенность в том, что _все_ контролы и окна рисовались мною. Руками. :) Целый API наваял. Потом оказалось, что есть очень удобная тулза и вообще все намного проще. Но чего со страху не наваяешь, да? :)
no subject
Date: 2002-08-08 06:08 am (UTC)Вообще единственная нетривиальная программа за последние несколько лет была мной написана в 27-28 лет (digiMine's Data Slurper (http://www.digimine.com/solutions/howdigimineworks.asp)). В подавляющем большинстве случаев требуются рутинные программы, реализующие стандартные требования; как говорится в анекдоте про рязанское радио, "Пахомыч, не выябывайся".
Только что вспомнил одну программку, написанную мной в 19 лет для Windows 3.1 на 20MHz 386. Она брала битмеп, кажется,
и рекурсивно подставляла его же в каждую непустую клетку, и так раза 4. Потом выводила "фрактальное сердечко" на device context принтера. Образовавшуюся картинку я кое-кому подарил.
no subject
Date: 2002-08-08 06:56 am (UTC)и некие зачатки AI. На каком-то этапе мне нужно было считать имя игрока,
а с помощью BGI красиво это было не сделать ... пришлось написать собственный
обработчик девятого (вроде правильно помню ?) прерывания ...
Еще через полгода я понял, как сделать ГОРАЗДО лучший AI, полез в код
и понял, что эту программу я уже никогда не пойму.
Мне тогда было 16 и лучше бы я тратил время на девок ....
no subject
В те времена Турбо-Паскаль был более популярен, чем НЛП :-)))
no subject
Date: 2002-08-08 06:57 am (UTC)В 13 я познакомился с БК, и писал, в основном, игрушки на Basicе. Так как доступ к компу был только 2 часа в неделю -- на уроках ЭВМ, программы писались на других уроках, а потом, в течение первого из двух часов, вводились вручную, так как возможность записаться предоставлялась не всегда. Чтобы успеть поиграться, надо было писать сразу правильно, чтобы можно было оставшийся час провести играясь и добавляя фичи, а не дебаггируя.
no subject
Date: 2002-08-08 07:34 am (UTC)На ней я тоже писал одни из первых своих программ. Самая интересная - тетрис (фигуры из трех клеток(точек), допускалось соединение углами). Так как под массив клеток памяти в калькуляторе не хватило бы, то строки хранились как произведения простых чисел.
А первая нетривиальная программа, насколько я помню, была на Turbo Basic (или не на Turbo?) Игрушка, корабль ходит вверх-вниз вдоль левой стенки, на него прут враги. Собственно, ничего интересного, разве что то, что персонажи рисовались polyline, а их оригиналы были сделаны на чертежной бумаге (потом по чертежу высчитывались координаты и вносились в компьютер). Насколько я помню, было довольно красиво.
Гм. Может бросить все и опять заняться играми?
TLKH
Вот еще
From: