Вход

Просмотр полной версии : Самый трудный язык программирования, с которым Вы сталкивались


yamaneko
18.08.2010, 22:58
Интересно знать. Для меня почему-то Си, Си++ были очень трудными, больше не хочу иметь дело с этими языками :)

cNdL
18.08.2010, 23:32
brainfuck?

wilin
19.08.2010, 11:27
Наверное, не твое. Может, займешься скрапбукингом? =)

rohard
19.08.2010, 14:05
brainfuck?

И где же это Вас угараздило с ним столкнуться? В википедии?

Assembler. Как учебник по ассемблеру открою, так сразу становится немного стыдно, что я там мало что сразу понимаю.

Наверное, соглашусь.

cNdL
19.08.2010, 14:29
И где же это Вас угараздило с ним столкнуться? В википедии?
Нет, квест-конкурс.
Потом разобрался, оказалось, что не сложней ассемблера.

DenDron
19.08.2010, 18:01
Нет, квест-конкурс.
Потом разобрался, оказалось, что не сложней ассемблера.


Что-то не верится что смог разобраться мало того что с ассемблером, так еще и с брэйнфаком. Прошу извинить за скептицизм. Наксолько я знаю, очень маленькое число специалистов может работать с последним... и в основном закончившие американское "эМАЙТи".

RIP
19.08.2010, 18:39
программисты, подскажите на каком языке написано вот это: http://myphotos.ya1.ru/shiki/myalbums/f/plus.jpeg

cNdL
19.08.2010, 19:30
Ученик демидролла :)
Дану ты, брось, наши крэкеры чем и славяца, и их больше чем дофига. (и прогеров на асм и крекеров)
Брейнфак ещё легче. Найди простой пример с объяснением, сам поймешь, что легко, только долго и муторно.
Надо же было выделицца, автору. А если посмотреть, почти тотже асм, только символами. брейфак тяжел с точки зрения обучения его, не зная асм'а.
upd: DenDron, вы не подумайте,что я такой прям маста и в том и в том, на самом деле сам недавно начал, но, гляжу в будущее, усвою очень легко,всё понятно:)
а так сам на C++\C#

yamaneko
19.08.2010, 21:27
brainfuck прикольный же. можно даже мини-конкурсы по нему проводить.

DenDron
19.08.2010, 23:15
программисты, подскажите на каком языке написано вот это: http://myphotos.ya1.ru/shiki/myalbums/f/plus.jpeg

По-моему это несоотвествие языка системы и экзешника... через апплокаль запускать пробовали? Как погляжу японская игрушка.

Martin_Logan
19.08.2010, 23:34
Perl (http://en.wikipedia.org/wiki/Just_another_Perl_hacker) :)

anatoliy
20.08.2010, 00:08
самый сложный - программирование на двоичном коде

RIP
20.08.2010, 00:57
По-моему это несоотвествие языка системы и экзешника... через апплокаль запускать пробовали? Как погляжу японская игрушка.

Да не, с игрушкой я разобрался, но вот какой язык... а да ладно )) просто интересно было

VanDamM
20.08.2010, 08:57
Что-то не верится что смог разобраться мало того что с ассемблером, так еще и с брэйнфаком. Прошу извинить за скептицизм. Наксолько я знаю, очень маленькое число специалистов может работать с последним... и в основном закончившие американское "эМАЙТи".

бред какой то, ассемблер входит в изучаемые дисциплины почти любого айтишника в почти любом из университетов.

ну к примеру в специальности "прикладная математика и информатика" в ягу

ну и нормальный программист старой закалки практически всегда имел дело с ассемблером.

з.ы. в частности мне пришлось писать на asm для z80 (zx spectrum), для intel x86 и 32bit flat model (под dos само собой)

вот одна из древностей (на чистом asm x86 в обертке паскаль юнита) которые когда я налабал :) (WRC - это старая местная демосценерская банда давно почившая в бозе :) другие исходники и древности можно посмотреть тут - ссылка (http://pascal.sources.ru/authors/kalinins.htm)


{ Unit for Triple Buffering work with 13h VGA mode }
{ and some effects: }
{ transparent motion blur / motion blur }
{ bilinear, trilinear, bicubic filtering }
{ Code by VanDamM / [WRC] }

Unit V_Sharp;
interface

Type
DoubleBuffer = array[0..319, 0..199] of byte;
DBufferPtr = ^DoubleBuffer;

Var
DBuffer : DBufferPtr;
Screen_13h : DBufferPtr;
BackGround : DBufferPtr;
SBuffer : DBufferPtr;

Procedure init13h;
Procedure kill13h;

Procedure initVariables;
Procedure killVariables;

Procedure PutPixel(WhereDraw : DBufferPtr; X, Y : integer; Color : byte);
Function GetPixel(WhereDraw : DBufferPtr; X, Y : integer) : byte;

Procedure WaitRetrace;

Procedure Motion_Blur(Var D; Step : Byte);
Procedure Transparent_Motion_Blur(Step : Byte);

Procedure Bilinear_Filtering (Var WorkingPage);
Procedure Trilinear_Filtering(Var WorkingPage);
Procedure Bicubic_Filtering (Var WorkingPage);

implementation

Procedure init13h; Assembler;
Asm
mov ax, 0013h
int 10h
End;

Procedure kill13h; Assembler;
Asm
mov ax, 0003h
int 10h
End;

Procedure initVariables;
Begin
New(DBuffer);
New(BackGround);
New(SBuffer);
End;

Procedure killVariables;
Begin
Dispose(DBuffer);
Dispose(BackGround);
Dispose(SBuffer);
End;

Procedure PutPixel(WhereDraw : DBufferPtr; X, Y : integer; Color : byte);
Var
SOffset, R : longint;
Begin
R:=Y; SOffset:= R shl 8 + R shl 6 + X;
mem[Seg(WhereDraw^):SOffset]:=Color;
End;

Function GetPixel(WhereDraw : DBufferPtr; X, Y : integer) : byte;
Var
SOffset, R : longint;
Begin
R:=Y; SOffset:= R shl 8 + R shl 6 + X;
GetPixel:=mem[Seg(WhereDraw^):SOffset];
End;

Procedure WaitRetrace;
Begin
Repeat Until ((Port[$3DA] AND 8) <> 0);
End;

Procedure Bilinear_Filtering(Var WorkingPage); assembler;
Asm
push ds
lds di, WorkingPage
add di, (320+1) + 60
mov cx, 198
@001:
push cx
push di
mov cx, 320
@002:
sub ax, ax
sub bx, bx
mov al, [di-1]
add bx, ax
mov al, [di+1]
add bx, ax
mov al, [di-320]
add bx, ax
mov al, [di+320]
add bx, ax

shr bx,2

mov al, [di]
add bx, ax
shr bx, 1

mov [di], bl
inc di
dec cx
cmp cx, 0
jne @002

pop di
pop cx
add di, 320
dec cx
cmp cx, 0
jne @001
pop ds
End;

Procedure Trilinear_Filtering(Var WorkingPage); assembler;
Asm
push ds
lds di, WorkingPage
add di, (320+1) + 60
mov cx, (200-2)
@001:
push cx
push di
mov cx, 320
@002:
mov ax, 0
mov bx, 0
mov al, [di-1]
add bx, ax
mov al, [di+1]
add bx, ax
mov al, [di-320]
add bx, ax
mov al, [di+320]
add bx, ax
mov al, [di-(320-1)]
add bx, ax
mov al, [di-(320-1)]
add bx, ax
mov al, [di+(320+1)]
add bx, ax
mov al, [di+(320-1)]
add bx, ax
shr bx, 3
mov al, [di]
add bx, ax
shr bx, 1
mov [di], bl
inc di
dec cx
cmp cx, 0
jne @002
pop di
pop cx
add di, 320
dec cx
cmp cx, 0
jne @001
pop ds
End;

Procedure Bicubic_Filtering(Var WorkingPage); assembler;
Asm
push ds
lds di, WorkingPage
add di, (320+1)+60
mov cx, (200-2)
@001:
push cx
push di
mov cx, 320
@002:
sub ax, ax
sub dx, dx
mov al, [di-1]
add dx, ax
mov al, [di+1]
add dx, ax
mov al, [di-320]
add dx, ax
mov al, [di+320]
add dx, ax

mov al, [di-(320+1)]
add dx, ax
mov al, [di-(320-1)]
add dx, ax
mov al, [di+(320+1)]
add dx, ax
mov al, [di+(320-1)]
add dx, ax

shr dx, 3

mov al, [di]
add dx, ax
shr dx, 1

mov [di-(320+1)], dl
mov [di+(320+1)], dl
mov [di-(320-1)], dl
mov [di+(320-1)], dl

inc di
dec cx
cmp cx, 0
jg @002

pop di
pop cx

add di, 320
dec cx
cmp cx, 0
jg @001
pop ds
End;

Procedure Motion_Blur(Var D; Step : Byte); Assembler;
Asm
les di, D
mov bl, Step
mov cx, 64000
@001:
mov al, es:[di]
sub al, bl
jns @002
mov al, 0
@002:
mov es:[di], al
inc di
dec cx
jnz @001
End;

Procedure Transparent_Motion_Blur(Step : Byte);
Var DBufSeg: word;
BackSeg: word;
ScreenSeg: word;
SecondSeg: word;
Begin

DBufSeg:=Seg(DBuffer^);
BackSeg:=Seg(BackGround^);
ScreenSeg:=Seg(Screen_13h^);
SecondSeg:=Seg(SBuffer^);

asm

mov di, 64000
mov es, SecondSeg
push ds
mov ds, DBufSeg
xor cx, cx

@001:

mov ax, [di]
mov dx, es:[di]
mov bx, dx

and al, al
jz @002
add bl, al
rcr bl, 1
mov [di], cl

@002:

sub bl, Step
jnc @003
xor bl, bl

@003:

and ah, ah
jz @004
add bh, ah
rcr bh, 1
mov [di+1], cl

@004:

sub bh, Step
jnc @005
xor bh, bh

@005:

mov es:[di], bx

push ds
push es
mov ds, BackSeg
mov es, ScreenSeg
add bx, ds:[di]
mov es:[di], bx
pop es
pop ds

sub di, 2
jnc @001
pop ds

end;
End;

Begin
Screen_13h := Ptr($A000,$0000);
End.

VanDamM
20.08.2010, 09:05
самый сложный - программирование на двоичном коде

:) никто не программирует сразу в двоичном коде
его можно генерить, реверсить-дизассемблить и т.д.

но сразу в нем кодить что то сложнее простейших хелло ворлдов и записей в порты и вызовов функций это изврат.

Wolfdale
20.08.2010, 09:08
Turbo Pascal :biggrin:

VanDamM
20.08.2010, 09:10
Turbo Pascal :biggrin:

так пишу же :005: "asm x86 в обертке паскаль юнита" просмотри исходник :)

VanDamM
20.08.2010, 09:12
В современном мире на ассемблере писать тоже изврат, хоть и чуть меньший. Стоит ли сейчас тратить на его изучение своё бесценное время? В 99% случаев - нет.

так никто и не спорит :) в современном мире на нем пишут системозависимые вещи: драйвера, вирусы и прочее

для всего остального требующего скорости есть переносимые и быстрые языки типа си\си++

VanDamM
20.08.2010, 09:40
А зачем тогда на ПМ обучают ассемблеру (к счастью или скорее к сожалению, меня турнули (или скорее я сам себя турнул) оттуда до изучения ассемблера)? Вот тебе эти знания не пригодились же. Ты драйверы не пишешь. И 99% выпускников не будут их писать.

в нужное время и в нужном месте мне эти знания пригодились и не раз, см. выше ссылку я дал, и в работе и вообще для себя, для fun'а. а сейчас я руководитель проектов и ассемблер мне ни к чему :)

думаю любой программист (а не аникейшик или скажем "быдлокодер") должен знать ассемблер на базовом уровне - для общего развития и понимания процессов происходящих в недрах процессора, памяти и операционной системы.

VanDamM
20.08.2010, 09:48
А, ну ладно тогда. А если я знаю, что творится в процессоре и т.п., но всё равно ни строчки хоть как-нибудь полезного кода на ассемблере не смогу написать, то можно я не буду считаться быдлокодером? :fie:

^)))

:comando:

Martin_Logan
20.08.2010, 09:51
бред какой то, ассемблер входит в изучаемые дисциплины почти любого айтишника в почти любом из университетов.

ну к примеру в специальности "прикладная математика и информатика" в ягу

ну и нормальный программист старой закалки практически всегда имел дело с ассемблером.

з.ы. в частности мне пришлось писать на asm для z80 (zx spectrum), для intel x86 и 32bit flat model (под dos само собой)

вот одна из древностей (на чистом asm x86 в обертке паскаль юнита) которые когда я налабал :) (WRC - это старая местная демосценерская банда давно почившая в бозе :) другие исходники и древности можно посмотреть тут - ссылка (http://pascal.sources.ru/authors/kalinins.htm)

Плюсую. В свое время написал аналоговые часы со стрелками на асьме. Да и сегодня зачастую программисты ради оптимизации делают такие вставки на ассемблере.

VanDamM
20.08.2010, 09:54
кстати об ассемблере
если у вас мощные компы и видяхи - зацените что можно сделать в 4Кбайтах...

Neanderstaller by Pittsburgh Stallers - http://www.scene.org/file.php?file=%2Fparties%2F2010%2Fassembly10%2Fin4 k%2Fneanderstaller_by_pittsburgh_stallers.zip&fileinfo

elevated by Rgba [web] & TBC - http://www.scene.org/file.php?file=%2Fparties%2F2009%2Fbreakpoint09%2Fi n4k%2Frgba_tbc_elevated.zip&fileinfo

VanDamM
20.08.2010, 09:55
Нельзя что ли... :0117: Ладно, пойду "ASSEMBLER" Юрова в туалете почитаю. В туалете у мну открывается третий глаз восприятия. Я там лучше усваиваю информацию.

лучше вот это почитай, классное чтиво http://wasm.ru/series.php?sid=12

Wolfdale
20.08.2010, 10:46
так пишу же :005: "asm x86 в обертке паскаль юнита" просмотри исходник :)

я имел ввиду, что для меня самый трудный
если серьезно это Delphi, т.к. мы в школе только ее и обучаем D:

DenDron
20.08.2010, 12:09
бред какой то, ассемблер входит в изучаемые дисциплины почти любого айтишника в почти любом из университетов.

Внимательно читайте. Я про Брэйнфак говорил, а не про ассемблер.

VanDamM
20.08.2010, 12:12
Внимательно читайте. Я про Брэйнфак говорил, а не про ассемблер.

"Что-то не верится что смог разобраться мало того что с ассемблером"

ваша фраза? :)

cNdL
20.08.2010, 13:33
лучше вот это почитай, классное чтиво http://wasm.ru/series.php?sid=12
:good:
Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 7 символов.

DenDron
20.08.2010, 17:46
ваша фраза? :)

Что-то не верится что смог разобраться мало того что с ассемблером, так еще и с брэйнфаком. Прошу извинить за скептицизм. Наксолько я знаю, очень маленькое число специалистов может работать с последним... и в основном закончившие американское "эМАЙТи".

Моя фраза :)

aderod
20.08.2010, 21:32
По мне разобраться с FlowCode для AVR был ваще капетц...
Это такая "рисовалка", рисуешь блоки, туда ассемблер в котором нету деления, умножения и тому подобного, стрелочками их сояединяешь, ну и потом это "компилитцо", короче жэсть, а народ говорит что вкусняшка

yamaneko
21.08.2010, 00:29
По мне разобраться с FlowCode для AVR был ваще капетц...
Это такая "рисовалка", рисуешь блоки, туда ассемблер в котором нету деления, умножения и тому подобного, стрелочками их сояединяешь, ну и потом это "компилитцо", короче жэсть, а народ говорит что вкусняшка

ух ты, звучит вкусно. похоже на uml ?

moonless
21.08.2010, 02:59
ну не знаю, ассемблер куда сложнее си

yamaneko
21.08.2010, 12:19
имхо си сложен тем, что там очень много знать, очень много тонкостей всяких. и книшки по сям толстые.

ассемблер не знаю, но думаю что там надо знать ограниченный набор команд, все остальное из этих команд можно соорудить (?)

Весёлый Молочник
23.08.2010, 12:17
:) никто не программирует сразу в двоичном коде
его можно генерить, реверсить-дизассемблить и т.д.

но сразу в нем кодить что то сложнее простейших хелло ворлдов и записей в порты и вызовов функций это изврат.

Писали же раньше километровые бумаги в двоичном коде. =) На википедии картинки были что ли.

Первый компилятор поди был так написан.

aderod
23.08.2010, 21:05
Такой он
http://forum.ya1.ru/attachment.php?attachmentid=30258&stc=1&d=1282561472


Ну вообще то самый крутой это наверно "ня" =)))

yamaneko
23.08.2010, 21:36
Что еще за ня? :)

Moonlight
25.08.2010, 09:47
достаточно трудно с ходу ответить на этот вопрос.
Но IMHO для меня самым трудным языком до сих пор является Си++.
И вообще слово трудный тут стоит немножко конкретизировать :)

daishi424
25.08.2010, 18:22
Вандамм живёт прошлым.
На ПМ больше нет программистов.

VanDamM
26.08.2010, 08:58
Вандамм живёт прошлым.
На ПМ больше нет программистов.

:) я не знаю нынешнее состояние дел в ПМ, возможно вы правы

deff
26.08.2010, 09:44
visual basic

xriby
26.08.2010, 11:42
LISP


...

chapa7777
26.08.2010, 14:52
deff, basic -самый долгий точно .
, но и в данное время люди прибегают к 2-ной системе программирования(особенно те кто пишет вирусы).

Googleman
29.08.2010, 22:11
Objective-C.
Правда он скорее странен, чем сложен.