PDA

Դիտել ողջ տարբերակը : Python vs C++



_DEATH_
25.10.2007, 19:27
Եկեք այս թեմայում համեմատենք Python-ի և C++-ի ծրագրերի կոդերը

Առաջին օրինակը

Python


import time
class now:
def __init__(self):
self.t = time.time()
self.storetime()

def storetime(self):
self.year, \
self.month, \
self.day, \
self.hour, \
self.minute, \
self.second, \
self.dow, \
self.doy, \
self.dst = time.localtime(self.t)

def __str__(self):
return time.ctime(self.t)

n = now()
print "The year is", n.year
print n
S='n'
print S

C++


#include <stdio.h>
#include <time.h>
class now
{
public:
time_t t;
int year;
int month;
int day;
int hour;
int minute;
int second;
int dow;
int doy;

now()
{
time(St);
struct tm * ttime;
ttime = localtime(St);
year = 1900 + ttime->tm_year;
month = ttime->tm_mon;
day = ttime->tm_mday;
hour = ttime->tm_hour;
minute = ttime->tm_min;
second = ttime->tm_sec;
dow = ttime->tm_wday;
doy = ttime->tm_yday;
}
};

main (int argc, char **argv)
{
now x ;
fprintf ( stdout, "The year is %d\n", x.year );
}

Մի հատ գիրք եմ կարդում, մեջը համեմատածա կոդերը պարզ երևումա, որ ի տարբերություն C++-ի Python-ի կոդը
1) համարյա 2 անգամ կարճա,
2)կետ-ստորակետ պետք չի ամեն մի օպերատորից հետո
3)ծրագրի բլոկները {}-ի տեղը պռաբելներով են անջատվում
4)1900+ ավտոմատ անումա պիտոնը
...


Եթե կարաք պարզ ծրագրերի կոդեր գրեք C++-ով փորձեմ Python-ով նույն ծրագիրը գրեմ, ու եթե կարելիա բացատրեք ծրագրի իմաստը, որովհետև C++ այնքան էլ լավ չգիտեմ, բայց քանի գնումա համոզվում եմ, որ պետք էլ չի իմանամ: Մենակ թե մյուս տարի ստիպված պտի սովորեմ :[: C++-ի սիրահարներին ներողություն:

_DEATH_
29.10.2007, 21:13
Մի օրինակ էլ բերեմ C-ի կոդը Python-ինի հետ համեմատելու համար

C


int factorial(int x) {
if (x == 0) {
return 1;
} else {
return x * factorial(x-1);
}
}

Python


def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x-1)

BOBO
29.10.2007, 21:24
Հա ինչ նույն բանը չի՞, մենակ մի երկու փակագիծ չկա:)

_DEATH_
30.10.2007, 15:47
Հա ինչ նույն բանը չի՞, մենակ մի երկու փակագիծ չկա:)
Կոնկրետ էս օրինակի մեջ մենակ էտ փակագծերի մոմենտն էի ուզում ցույց տայի:
Ճիշտ կոդը փոքր էր, ու առանձնապես տրամաբանություն մեջը չկար, դրա համար համարյա բոլոր լեզուներով կոդի չափսը նույն կլինի:


Ինձ շատա հետաքրքում իսկականից չես նկատել էս պուճուր կոդի մեջ, որ 1)փակագծերը ոչ թե 2 հատա, այլ 6, 2) ամեն օպերատորը մյուսից կետ ստորակետովա անջատվում C-ում(C++), իսկ python-ում պռաբելով, 3)x փոփոխականը python-ում հայտարարել պետք չի, բացի դրանից հետո նրան կարելիա տալ ցանկացած տիպի առժեք (օրինակ տառային): Մի հատ երկար կոդ կգրեմ հետո եթե հավես լնի, որ պարզ երևա, որ python-ի կոդերը մի քանի անգամ պարզ են ու տրամաբանական: Ցանկացած խնդիր համեմատած C++-ի հետ կարելիա լուծել 3-5 անգամ արագ, ու էս իմ հաշվարկները չի: Միակ վատ կողմը էնա, որ ինտեռպռետատոռա:

http://ru.wikipedia.org/wiki/Python մանրամասն գրածա:

BOBO
30.10.2007, 15:54
Ինտեռպռետատոր չլներ ծրագիրը ըտենց կարճ չեիր կարա գրես

_DEATH_
30.10.2007, 16:13
Ինտեռպռետատոր չլներ ծրագիրը ըտենց կարճ չեիր կարա գրես

:o Քո ասածից մի բան հասկանում ես՞՞՞՞, ի՞նչ կապ ունի ինտեռպռետատոռ լինել չլինելը ծրագրի երկար-կարճ լինելու հետ: Դու սկզբից տերմինների իմաստը հասկացաի, նոր սկսի միտք ձևակերպելը: Ուզում ես ասես, որ C++-ի նոր վերսիայի սինտաքսիսը python-ին նմանացնեն, ուրեմն C++-ը կդառնա ինտեռպռետատոռ :D:D

Ի միջիալյոց մնացած ինտեռպռետատոռների համեմատ, python-ը կարելի է նույնիսկ ինտեռպռետատոռ չհամարել, որովհետև հնարավորա կոդը կոմպայլ անել .pyc-ի, որ հետո ինտեռպռետատոռը ամեն անգամ ծրագիրը նորից կոմպայլ չանի: Համ էլ ես լրիվ ուրիշ բան նկատի ունեի որ ասում էի Ցանկացած խնդիր համեմատած C++-ի հետ կարելիա լուծել 3-5 անգամ արագ: Էտ պայմանավորվածա նրանով, որ ամեն անգամ ծրագրի կոդի մեջ փոփոխություն մտցնելու համար պետք չի կոմպայլ անել:

BOBO
30.10.2007, 16:24
Բա ով կապ ունի, կարողա ես? Գնա ինտեռպռետատոռների մեկել չեմ հիշում էմեկի անունը դրա դասը սովորի: Համել c++իստները ինչքան էլ տանձվն իրանց սինտրաքսիսը չեն կարա պիտոնչիկին նմանեցնեն:

_DEATH_
30.10.2007, 16:32
Բա ով կապ ունի, կարողա ես? Գնա ինտեռպռետատոռների մեկել չեմ հիշում էմեկի անունը դրա դասը սովորի: Համել c++իստները ինչքան էլ տանձվն իրանց սինտրաքսիսը չեն կարա պիտոնչիկին նմանեցնեն:


Դու սովորի, որ տենց անկապություններ չասես:
Քեզ ով խաբեց՞՞՞, նույնիսկ հնարավորա մի քանի ժամում սինտաքսիսը փոխել ու տանջվել էլ պետք չի խաղ ու պարա: Համ էլ արդեն մի քան հատ կոմուլացվող (եթե հայերեն տերմինը ճիշտ ասեցի) ծրագրավորման լեզուներ կան հիմնված Python-ի վրա, ուղակի հլը շատ զարգանալու տեղ ունեն:

Համ էլ հերիքա քո հորինած տերմինները օգտագոծես, ես ինչ մեղք ունեմ, որ ծրագրավորող ադմիններից ոչ մեկ չի նկատել, որ ինչ գրում ես ժառգոն ես գրում:

BOBO
30.10.2007, 16:44
Ինչ հորինած տեռմին ինչ ժառգոն ինչ բան: Համ էլ հանգիստ խոսա անկապությունները որս ա?:sad

rostrix
30.10.2007, 16:57
Pyton, C++ էական չի, կարևորը ծրագրավորել իմանա մարդ :B Բայց իհարկե Պիտոնը Սի պլյու պլյուսի մոտ մանչուկ է.

BOBO
30.10.2007, 17:03
Pyton, C++ էական չի, կարևորը ծրագրավորել իմանա մարդ :B Բայց իհարկե Պիտոնը Սի պլյու պլյուսի մոտ մանչուկ է.
Դրա համար էլ պիտոնչիկ ա:D

_DEATH_
30.10.2007, 17:43
Pyton, C++ էական չի, կարևորը ծրագրավորել իմանա մարդ :B Բայց իհարկե Պիտոնը Սի պլյու պլյուսի մոտ մանչուկ է.

Ոնց կարողա էական չլինի, օրինակ php-ով կարող ես photoshop-ի նման ծրագիր գրել: Կարևորը էնա թե ինչ պետքա անես ծրագրավորում իմանալուց հետո: Օրինակ ես սմարթֆոնների համար եմ ծրագիր գրում ու ինձ, ոնցոր մնացած ծրագրավորողներին ավելի հարմարա Պիտոնով ծրագրավորել: Ու հիմա Պիտոնով գրված պետքական ծրագրերի թիվը մի քանի անգամ գերազանցումա C++-ով գրվածներին, չնայած նրան, որ Symbian-ը C++-ովա գրված ու էտ լիքը առավելություններա տալիս:

Ի՞նչ նկատի ունես մանչուկ ասելով:

rostrix
30.10.2007, 17:47
Ոնց կարողա էական չլինի, օրինակ php-ով կարող ես photoshop-ի նման ծրագիր գրել: Կարևորը էնա թե ինչ պետքա անես ծրագրավորում իմանալուց հետո: Օրինակ ես սմարթֆոնների համար եմ ծրագիր գրում ու ինձ, ոնցոր մնացած ծրագրավորողներին ավելի հարմարա Պիտոնով ծրագրավորել: Ու հիմա Պիտոնով գրված պետքական ծրագրերի թիվը մի քանի անգամ գերազանցումա C++-ով գրվածներին, չնայած նրան, որ Symbian-ը C++-ովա գրված ու էտ լիքը առավելություններա տալիս:

Ի՞նչ նկատի ունես մանչուկ ասելով:

Քո դեպքում ես Սի Շարփով կգրեի, իսկ պիտոնը բարոյապես մաշված մի բան է. զզվում եմ... PHP ...Java..

Grieg
30.10.2007, 17:56
ես ել չեմ սիրում Pythone նրա Pascal,VB-ա նման լեզուն :( բացի դրանից դանդաղ է..
http://furryland.org/~mikec/bench/graph.png
http://furryland.org/~mikec/bench/

_DEATH_
30.10.2007, 18:07
Symbian ծրագրավորողների 80%-ը Python-ով էն գրում ու ոչ մի ուրիշ լեզվով հնարավոր չի էտքան արագ Symbian-ի համար ծրագիր գրել, բացի դրանից Python-ը Nokia-ն Symbian-ի հետ համատեղ, որ սմարթֆոնների համար մշակելա ուրեմն մի բան գիտի :ok, հենա C++-ը կմշակեին: Կոմպ որտեղից ճարեմ դասի ժամանակ, որ C++-ով ծրագիր գրեմ ու փորձարկեմ: Պիտոնով քանի անգամ շտապ մի բան պետքա եկել, դասի ժամանակ գրել եմ ու օգտագործել:

Ավելացվել է 14 րոպե անց

ես ել չեմ սիրում Pythone նրա Pascal,VB-ա նման լեզուն :( բացի դրանից դանդաղ է..
http://furryland.org/~mikec/bench/graph.png
http://furryland.org/~mikec/bench/

Pascal-ին ընդհանրապես նման չի, եթե համեմատենք երևի ավելի շատ C++-նա նման պասկալին, քան թե Python-ը:
Օրինակ GOTO-ն 1968 թ.-ին ծրագրավորման թշնամիա ճանաչվել, դրա համար Պիտոնում չկա, իսկ C++-ում ու Pascal-ում կա: Փոփոխականները C++-ում, Pascal-ում ու համարյա մնացած բոլոր հնաոճ լեզուներում պետքա հայտարարել, իսկ Python-ում պետք չի: Pascal-ում begin end, C++ {}, Python-ում ոչ մի բան, ավելի ճիշտ տարածություն է թողնվում օպերատորների միջև (պռաբել կամ tab), Pascal x:=x+i, C++ -ում x=x+i, Python_ում x+=i:

Ինչը համեմատում եմ C++-ը շատ նմանա Pascal-ին, իսկ Python-ը ընդհանրապես նման ճի, քո գրած լինկով մտա, էտ օրինակների մեջ ընդհանրապես C++-ի կոդը 3-4 անգամ էր երկար:

_DEATH_
22.02.2008, 19:20
Քո դեպքում ես Սի Շարփով կգրեի, իսկ պիտոնը բարոյապես մաշված մի բան է. զզվում եմ... PHP ...Java..

Ես էն ժամանակ C++ ընթանրապես չգիտեի, հիմա մի քիչ գիտեմ ու նկատեցի որ բոլորդ ամենինչ ճիշտ հակառակն եք ներկայացրել, պաշտպանելու համար խղճուկ C++-ը:
Բարոյապես մաշված շատ ճիշտ բնութագիրա C++-ի համար, որովհետև կոդը շատ դեպքերում անըմբռնելի ա ու նույնիսկ քո գրած ծրագիրը կարողա մի երկու ամսից չհականաս, որին նպաստումա նաև goto հրամանը, որը Python-ում չկա:
Բացի դրանից C++-ի «քձիբության» պատճառով շատ դժվար է սովորել այն, իսկ Python-ի դեպքում ծրագրերի կոդերը բաց են, որի շնորհիվ ուրիշի կոդերը ուսումնասիրելով մարդիկ շատ արագ դառնում են մասնագետներ:

Lonely
22.02.2008, 20:27
C++-ը խղճուկ չի: Ունի MFC App սարքելու հնարավորություն: Visual Studio 7- մեջ Windows Mobile Editor կա: Դե C++ի *.h ( библиотека )-ել...

Top 10 լեզուներ (http://www.stolica.ru/techinfo/article/2006_10/03_01.htm)

C - 35% [ 3619 ]
C++ - 22% [ 2256 ]
C# - 13% [ 1396 ]
Java - 9% [ 991 ]
Basic-подобные - 6% [ 616 ]
Pascal-подобные - 4% [ 427 ]
HTML+Javascript+Ajax+PHP - 1% [ 194 ]
Язык запросов под БД (PL/SQL, например) - 1% [ 190 ]
Perl/Python/Ruby - 1% [ 188 ]
Языки для математических расчетов (Fortran, например) - 0% [ 96 ]
Bash+Sed+Awk - 0% [ 63 ]
Эзотерика и оккультизм - 0% [ 66 ]

Всего проголосовало : 10102

_DEATH_
22.02.2008, 20:42
C++-ը խղճուկ չի: Ունի MFC App սարքելու հնարավորություն: Visual Studio 7- մեջ Windows Mobile Editor կա: Դե C++ի *.h ( библиотека )-ել...

:[ Microsoft-նա Visual Studio-ի հեղինակը, դրանով էլ բացատրվումա էտ ցուցակը, որը շատ շուտով կփոխվի, հենց դուրս գա Python-ի 3-րդ վերսիան:
Իսկ Windows Mobile ցույցա տալիս Microsoft-ի իսկական դեմքը, փոխանակ OS գրեն մինի կոմպի համար, բռնել Windows-ն են մի քիչ փոխել ու էտ gb-անոց OS-ից շատ ավելի քիչ մարդիկ են օգտվում քան Symbian-ից, որը գրված է C++-ով, չնայած դրան Nokia-ի ֆորումում մասնագետները խորհուրդ են տալիս Python, որովհետև այն վերջին 2 տարում շատ արագ տեմպերով զարգանում է ու շատ ավելի հարմար է ծրագիր գրելը:
Համակարգչի համար էլ շատ հզոր ծրագրեր կան, բայց հիմնականում Windows-ի համար չեն, որից օգտվում են շատերը: Դրա համար էլ առաջատարը չի առայժմ, միայն Microsoft-ի պատճառով, նույն բանը կատարվումա հիմա հայաստանում՝ սերժ ու վերջ:

xaker00
06.08.2009, 18:50
Առաջին օրինակը

Python

Կոդ:

import time
class now:
def __init__(self):
self.t = time.time()
self.storetime()

def storetime(self):
self.year, \
self.month, \
self.day, \
self.hour, \
self.minute, \
self.second, \
self.dow, \
self.doy, \
self.dst = time.localtime(self.t)

def __str__(self):
return time.ctime(self.t)

n = now()
print "The year is", n.year
print n
S='n'
print S
մի հարց... էս կոդը ինչ է անում՞ ու ընդհանրապես, ինչ ֆորմատով եք պահում գրված կոդերը...

_DEATH_
06.08.2009, 19:13
մի հարց... էս կոդը ինչ է անում՞ ու ընդհանրապես, ինչ ֆորմատով եք պահում գրված կոդերը...

now դասն (class) ա հայտարարված, հետո էտ դասի օբյեկտն ա ստեղծվում՝ n և էկրանին սկզբից տպվում ա n օբյեկտի year անդամը (n.year): Եթե ծրագրավորման հետ ծանոթ չես, առավել ևս OOP-ին, էս օրինակից հիմա բան չես հասկանա: Ավելի պարզ օրինակներից պետք ա սկսել: Գրված կոդը պահվում է .py և .pyw ընդլայնումով սցենարի տեսքով:

xaker00
06.08.2009, 19:20
Ավելի պարզ օրինակներից պետք ա սկսել:
ունես՞

_DEATH_
06.08.2009, 19:28
Էն ժամանակ, որ էս թեման բացել եմ C++ գրեթե չգիտեի: Հիմա շատ լավ գիտեմ ու ևս մի քանի օրինակ կբերեմ համեմատելու համար: Դեյտելի օրինակ

Գրեմ ծրագրի օրիգինալ կոդը, դատարկ տողերը ուղակի հեռացրել եմ, որ C++-ի կոդը մի քիչ սեղմ երևա:


#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
int main()
{
const int arraySize = 10;
int n[ arraySize ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };
cout << "Element" << setw( 13 ) << "Value"
<< setw( 17 ) << "Histogram" << endl;
for ( int i = 0; i < arraySize; i++ ) {
cout << setw( 7 ) << i << setw( 13 )
<< n[ i ] << setw( 9 );
for ( int j = 0; j < n[ i ]; j++ )
cout << '*';
cout << endl;
}
return 0;
}

Իսկ ներքևում գրում եմ թարգմանածս կոդը Python 2-ով,


print 'Value'+8*' '+'Histogram'
for i in (19,3,15,7,11,9,13,5,17,1):print '%*s'%(5,i),7*' '+i*'*'

Իսկ հիմա 3րդ վերսիայի համար, որը համարվում է անհամատեղելի ավելի ցածր վերսիաների հետ:


print ('Value'+8*' '+'Histogram')
for i in (19,3,15,7,11,9,13,5,17,1):print ('%*s'%(5,i),7*' '+i*'*')

Կոնկրետ այս կոդում շատ մեծ տարբերություն չեղավ, միայն փակագծերը…

_DEATH_
06.08.2009, 19:36
ունես՞

Գիրքը քցեցի ռապիդում, քաշի Освой Python за 24 ч (http://rapidshare.com/files/264410626/___________Python______24___.7z.html), ամենապարզ գրված գիրքն ա իմ կարծիքով: Ուղակի էս Python 3-ի համար չի, տարբերություններ կա: Ես որ սովորում էի, Python 2-ն էր, 3-ի չգիտեմ ինչ լավ գիրք կա:

xaker00
06.08.2009, 20:03
Գիրքը քցեցի ռապիդում, քաշի Освой Python за 24 ч, ամենապարզ գրված գիրքն ա իմ կարծիքով: Ուղակի էս Python 3-ի համար չի, տարբերություններ կա: Ես որ սովորում էի, Python 2-ն էր, 3-ի չգիտեմ ինչ լավ գիրք կա:
Տարբերություն շատ կա՞ 3ի և 2ի միջև՞

_DEATH_
06.08.2009, 21:48
Տարբերություն շատ կա՞ 3ի և 2ի միջև՞

ՍԻնտաքսիսը փոխվել ա մի քիչ, մի քանի նոր կոնստռուկցիաներ են ավելացվել,…

xaker00
07.08.2009, 11:27
Գրված կոդը պահվում է .py և .pyw ընդլայնումով սցենարի տեսքով:
python-ով ենթադրենք գրել եմ...
print "hello, world" ու պահել եմ .ру ֆորմատով, բա հետո՞ հետո ինչ ծրագրով բացեմ՞ ու տեսնեմ hello world արտահայտությունը....

_DEATH_
07.08.2009, 11:32
python-ով ենթադրենք գրել եմ...
print "hello, world" ու պահել եմ .ру ֆորմատով, բա հետո՞ հետո ինչ ծրագրով բացեմ՞ ու տեսնեմ hello world արտահայտությունը....

Python-ը քցել ես՞՞: Python-ը կոմպիլյատոռ չի, ինտերպռետատոր ա, էտքան տանջվել պետք չի սովորելու համար : Start -> Programs -> Python 3.1 -> IDLE (Python GUI) բաց, print "hello, world" գրի ու enter սխմի!!

xaker00
07.08.2009, 11:58
Python-ը քցել ես՞՞: Python-ը կոմպիլյատոռ չի, ինտերպռետատոր ա, էտքան տանջվել պետք չի սովորելու համար : Start -> Programs -> Python 3.1 -> IDLE (Python GUI) բաց, print "hello, world" գրի ու enter սխմի!!
հա քցեցի... բացեցի ու գրեցի print "hell, world" ու սեխմեցի ենտեռ... բաից եսպես է գրում...
>>> print "hello, world"
SyntaxError: invalid syntax (<pyshell#2>, line 1)
>>>

_DEATH_
07.08.2009, 12:04
հա քցեցի... բացեցի ու գրեցի print "hell, world" ու սեխմեցի ենտեռ... բաից եսպես է գրում...
>>> print "hello, world"
SyntaxError: invalid syntax (<pyshell#2>, line 1)
>>>

Հա ես վերևը գրել էի, Python 3-ում սենց պետք ա լինի
>>> print("hello, world")
hello, world
>>>

:)

d4rkme551ah
09.08.2009, 09:08
Էն ժամանակ, որ էս թեման բացել եմ C++ գրեթե չգիտեի: Հիմա շատ լավ գիտեմ ու ևս մի քանի օրինակ կբերեմ համեմատելու համար: Դեյտելի օրինակ
Հմմ, Դեյտլնա այս շեդևռի հեղինակը? Ես քեզ խորհուրդ կտամ այդ գրքից հեռու մնաս: Համարժեք կոդը կարելիա գրել այսպես.


#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };
cout<<"Element"<<setw(13)<<"Value"<<setw(17)<<"Histogram"<<endl;
for ( int i = 0; i < 10; cout<<setfill(' ')<<setw(7)<<i<<setw(13)<<n[i]<<setw(8)<<' '<<setfill('*')<<setw(n[i]+1)<<"\n", i++ );
}

Իսկ քո բերած Python-ի օրինակը լրիվ համարժեք չի:
Նախ և առաջ պետքա հասկանալ, որ Python-ը իր ֆունկցիոնալ հնարավորություններով ոչինչով չի գերազանցում C++-ին: Ու եթե ինչ որ բան պիտոնով կարելիա անել ավելի կարճ, դա ոչ թե լեզվի, այլ հարուստ գրադարանի շնորհքնա: Իսկ '{ }' և ';' սիմվոլները ընդհանրապես չեն խանգարում, այլ հակառակը, կոդի ստրուկտուրան ավելի ակնհայտ են դարձնում: C++-ը շատ ավելի հզոր, հարուստ և բազմակողմ լեզաույա, ինչի հետևանքով էլ սկզբնական շրջանում դժվարա յուրացնել ու հասկանալ: Ու ցուցիչների 'պրոբլեմը' ամենևին էլ պրոբլեմ չի հասկացող մարդու համար, այլ առավելություն: Ճիշտա, Python-ով առօրյա ծրագրերը ավելի արագ են գրվում, բայց փոխարենը կորցնում ենք կատարման արագության մեջ: Այս առումով պիտոնը C#-ին կոնկուրենտ չի: Python-ը հարմարա այն դեպքում, երբ պետքա արագ ինչ-որ խնդիր լուծել, առանց ծրագրավորման նրբությունների մեջ խորանալու, ու մեկել որպես սցենարներ գրելու լեզու, ասենք խաղերի համար:


Ես էն ժամանակ C++ ընթանրապես չգիտեի, հիմա մի քիչ գիտեմ ու նկատեցի որ բոլորդ ամենինչ ճիշտ հակառակն եք ներկայացրել, պաշտպանելու համար խղճուկ C++-ը:
Բարոյապես մաշված շատ ճիշտ բնութագիրա C++-ի համար, որովհետև կոդը շատ դեպքերում անըմբռնելի ա ու նույնիսկ քո գրած ծրագիրը կարողա մի երկու ամսից չհականաս, որին նպաստումա նաև goto հրամանը, որը Python-ում չկա:
Բացի դրանից C++-ի «քձիբության» պատճառով շատ դժվար է սովորել այն, իսկ Python-ի դեպքում ծրագրերի կոդերը բաց են, որի շնորհիվ ուրիշի կոդերը ուսումնասիրելով մարդիկ շատ արագ դառնում են մասնագետներ:

Հուսով եմ դու քո կարծիքը փոխել ես: C++-ը շարունակումա զարգանալ, այս տարի դուրսա գալու նոր ստանդարտը: Իսկ goto հրամանը ոչ ոք սթափ վիճակում չի օգտագործում: C++-ով գոյություն ունեն անթիվ անհամար բաց կոդով ծրագրեր ու գրադարաններ, բաց նայի ինչքան սիրտդ կուզի:
Էս քեզ օրինակ C++-ով, հետաքրքիրա պիտոնով սրա համարժեք կոդը ինչ տեսք կունենա?


#include <iostream>
using namespace std;

template<class MyType> class node
{
public:
typedef void Function (MyType& val);
MyType data;
node* left;
node* right;
node(MyType val): left(NULL), right(NULL)
{
data = val;
}
void add(const MyType& val)
{
if(val<data)
{
if(left != NULL)
left->add(val);
else
left = new node(val);
}
else
{
if(right!=NULL)
right->add(val);
else
right = new node(val);
}
}
~node()
{
if(left!=NULL)
delete left;
if(right!=NULL)
delete right;
}
void for_each(Function funct)
{
if(left!=NULL)
left->for_each(funct);
funct(data);
if(right!=NULL)
right->for_each(funct);
}
};

void print(int& val)
{
cout<<val<<endl;
}

void main()
{
int n[10] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };
node<int>* pRoot = new node<int>(12);//բինար սորտավորված ծառի արմատ
for (register int i = 0; i < 10; pRoot->add(n[i]), i++);
pRoot->for_each(print);//ծառի ամեն էլեմենտի համար ըստ աճման կարգի կանչում ենք print ֆունկցիան: print-ի փոխարեն կարա լինի ցանկացած ուրիշ ֆունկցիա
delete pRoot;
}

One_Way_Ticket
12.08.2009, 13:22
Եկեք համեմատենք բրնձով փլավն ու կանաչ թեյը: Ես պնդում եմ, որ կանաչ թեյն ավելի լավն է: Նախ այն էժան է: Պատրաստելը շատ ավելի հեշտ է: Չի գիրացնում: Առանց աղի իր համը չի կորցնում ի տարբերություն բրնձով փլավի: Եվ այլն: Ով համաձայն չէ, թող ինձ բրնձով փլավ ցույց տա, ես իրեն ավելի համեղ կանաչ թեյ ցույց կտամ:

Կարծում եք աբսու՞րդ է գրածս: Իմ կարծիքով ոչ ավելի մեծ աբսուրդ, քան այս թեման է:

_DEATH_
12.08.2009, 13:41
Եկեք համեմատենք բրնձով փլավն ու կանաչ թեյը: Ես պնդում եմ, որ կանաչ թեյն ավելի լավն է: Նախ այն էժան է: Պատրաստելը շատ ավելի հեշտ է: Չի գիրացնում: Առանց աղի իր համը չի կորցնում ի տարբերություն բրնձով փլավի: Եվ այլն: Ով համաձայն չէ, թող ինձ բրնձով փլավ ցույց տա, ես իրեն ավելի համեղ կանաչ թեյ ցույց կտամ:

Կարծում եք աբսու՞րդ է գրածս: Իմ կարծիքով ոչ ավելի մեծ աբսուրդ, քան այս թեման է:

ինչ բրձով փլավ՞՞ Ինչ կապ ուներ էտ համեմատությունը՞՞
բրնձով փլավն ուտելու համար ա, իսկ կանաչ թեյը խմելու: Իսկ էս դեպքում երկուսն էլ ծրագրավորման լեզու են ու երկուսով էլ կարելի ա նույն ծրագիրը գրել: Միակ տարբերությունը էն ա, որ C++ կոմպիլյացոն լեզու ա, կոմպից ու ՕՀ-ից կախում ունեցող, իսկ Python-ը ինտեռպռետատոր ա քռոս պլատֆորմեննի, մեքենայից կախում չունեցող, որը ավտոմատ կերպով տնորինում ա դինամիկ հիշողությունը: Միակ առավելությունը որ C++-ը ունի արագագործությունն ա, որովհետև վերջում կոմպիլացիայից հետո գրված ծրագրի տեքստը դառնում ա հրամանների շարան ուղղված պռոցին, իսկ Python-ի դեպքում տեքստը շատ-շատ դառնում ա բայթ-կոդ, որը պետք ա ինտեռպռետատորը աշխատացնի: Բայց մարդու համար արագոգործությունից էն կողմ ոչ մի տարբերություն չի երևում ծրագրի աշխատանքի մեջ:
Համեմատությունդ պետք ա սենց անեիր. պակետով ա հարմար թեյ սարքել, թե թեյի խոտով: :ok

_DEATH_
12.08.2009, 14:13
Հմմ, Դեյտլնա այս շեդևռի հեղինակը? Ես քեզ խորհուրդ կտամ այդ գրքից հեռու մնաս: Համարժեք կոդը կարելիա գրել այսպես.


#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };
cout<<"Element"<<setw(13)<<"Value"<<setw(17)<<"Histogram"<<endl;
for ( int i = 0; i < 10; cout<<setfill(' ')<<setw(7)<<i<<setw(13)<<n[i]<<setw(8)<<' '<<setfill('*')<<setw(n[i]+1)<<"\n", i++ );
}


Նախ էտ քո բերած համարժեք կոդը հիմա քննադատվում ա, նոր ստեղծվող բարձր մակարդակի ծրագրավորման լեզուների մեջ նենց էն անում, որ տենց գրել չլինի:
Ի դեպ դեյտելի հին հրատարակությունների մեջ տենց էր գրված: Ոնց հասկանում եմ ուզել ես մաքսիմալ փոքրացնել կոդի չափը, բայց էդ դեպքում cout-ը որ ֆայլին ա պատկանում iostream, թե iomanip՞՞՞, բա եթե 100 հատ գրադարան լինի՞՞ դրա համար ընդունելի չի քո գրած տարբերակը, պետք ա հստակ նշվի պատկանելիության տիրույթը ծրագրի մեջ ինչոր մի տեղ, որպեսզի հետագայում կարդալուց պարզ լինի, որը որտեղից ա: մնացած մասը վաբշե էս այլանդակել: int n[10] ՞՞՞ էս դեպքում բա որ ծրագիր գրես որի մեջ մի քանի հատ նույն չափի զանգված ա պետք, ոնց պտի անես, ասենք եթե պետք լինի 10-ը հետո 20 դարձնել, պտի հատ-հատ փոխես՞՞ :D Ավելի լավ ա էլ էտ կոդին չնայեմ վատանամ…


Իսկ քո բերած Python-ի օրինակը լրիվ համարժեք չի:
Նախ և առաջ պետքա հասկանալ, որ Python-ը իր ֆունկցիոնալ հնարավորություններով ոչինչով չի գերազանցում C++-ին: Ու եթե ինչ որ բան պիտոնով կարելիա անել ավելի կարճ, դա ոչ թե լեզվի, այլ հարուստ գրադարանի շնորհքնա: Իսկ '{ }' և ';' սիմվոլները ընդհանրապես չեն խանգարում, այլ հակառակը, կոդի ստրուկտուրան ավելի ակնհայտ են դարձնում: C++-ը շատ ավելի հզոր, հարուստ և բազմակողմ լեզաույա, ինչի հետևանքով էլ սկզբնական շրջանում դժվարա յուրացնել ու հասկանալ: Ու ցուցիչների 'պրոբլեմը' ամենևին էլ պրոբլեմ չի հասկացող մարդու համար, այլ առավելություն: Ճիշտա, Python-ով առօրյա ծրագրերը ավելի արագ են գրվում, բայց փոխարենը կորցնում ենք կատարման արագության մեջ: Այս առումով պիտոնը C#-ին կոնկուրենտ չի: Python-ը հարմարա այն դեպքում, երբ պետքա արագ ինչ-որ խնդիր լուծել, առանց ծրագրավորման նրբությունների մեջ խորանալու, ու մեկել որպես սցենարներ գրելու լեզու, ասենք խաղերի համար:

Էս գրածդ ժպիտ ա առաջացնում:
1) Հենց էտ ա ֆունկցիոնալ հնարավորությունների շնորհիվ, սինտաքսը լիքը ինստրուկցիաներ ունի, որոնք մի քանի անգամ կրճատում են կոդի չափը: Իսկ ներսարված (built in) հարուստ տիպերի շնորհիվ նոր դաս ստեղծել շատ հազվադեպ է պետք լինում:
2) Նախ ոչ թե հարուստ գրադարանների, այլ հարուստ մոդուլների, հետո էլ եթե ուշադիր լինես ես գրածս օրինակի մեջ ոչ մի ֆայլ չեմ ներմուծել: Չեմ ժխտում, որ շատ հարուստ բազա ունի, հաճախակի պետք եկող գրեթե ամենինչի համար մոդուլ ունի:
3)Լավ էլ խանգարում են, քո գրած կոդից ենթադրում եմ, որ դու էլ շատ լավ գիտես կոդի ստրուկտուրան ավելի ակնհայտ դարձնելու ամենճիշտ ձևը, որը Python լեզվի ոճն ա: Հեսա գրածդ դասի կոնստռուկտորը

node(MyType val): left(NULL), right(NULL)
{
data = val;
}
եթե {-ն ակնհայտ ա դարձնում, ապա ինչու ես տենց գրել, հենա սենց գրեիր


node(MyType val): left(NULL), right(NULL){data = val;}

Իսկ Python-ի ոճով առանձ էտ ձևավոր փակագծերի, բայց պետք ա տենց բլոկները հավասար տարածություններով ընդգծվի, շատ ավելի պարզ ա տենց կոդը:


Հուսով եմ դու քո կարծիքը փոխել ես: C++-ը շարունակումա զարգանալ, այս տարի դուրսա գալու նոր ստանդարտը: Իսկ goto հրամանը ոչ ոք սթափ վիճակում չի օգտագործում: C++-ով գոյություն ունեն անթիվ անհամար բաց կոդով ծրագրեր ու գրադարաններ, բաց նայի ինչքան սիրտդ կուզի:
Էս քեզ օրինակ C++-ով, հետաքրքիրա պիտոնով սրա համարժեք կոդը ինչ տեսք կունենա?

Ճիշտն ասած հիմա ինչ-ինչ պատճառներով C++ ավելի շատ եմ օգտագործում, կոմերցիոն ծրագիր եմ ուզում գրել…
Գրածդ օրինակը Python-ով կարելի ա ինչպես միշտ երկու տողով գրել առանձ ավելորդ դաս հայտարարելու, ուղակի քանի ամիս ա Python-ով չեմ գրել, մոռացել եմ էտ որ մեթոդն էր, իսկ եթե հարցը էտ դասը Python-ով թարգմանելն ա, ասա թարգմանեմ…
Ի դեպ Python-ի դեպքում ոչ մի շաբլոն մաբլոն, էտքան խուճուճ ու երկար կոդ պետք չի լինի էտ նույն դասը հայտարարելուց, բայց դե հիմա էտքան գրելու հավես չունեմ, շատ են լեզուները տարբերվում իրարից, համարժեք թարգմանելը մի քիչ բարդ ա:

d4rkme551ah
13.08.2009, 15:26
Ի դեպ դեյտելի հին հրատարակությունների մեջ տենց էր գրված: Ոնց հասկանում եմ ուզել ես մաքսիմալ փոքրացնել կոդի չափը, բայց էդ դեպքում cout-ը որ ֆայլին ա պատկանում iostream, թե iomanip՞՞՞, բա եթե 100 հատ գրադարան լինի՞՞ դրա համար ընդունելի չի քո գրած տարբերակը, պետք ա հստակ նշվի պատկանելիության տիրույթը ծրագրի մեջ ինչոր մի տեղ, որպեսզի հետագայում կարդալուց պարզ լինի, որը որտեղից ա: մնացած մասը վաբշե էս այլանդակել: int n[10] ՞՞՞ էս դեպքում բա որ ծրագիր գրես որի մեջ մի քանի հատ նույն չափի զանգված ա պետք, ոնց պտի անես, ասենք եթե պետք լինի 10-ը հետո 20 դարձնել, պտի հատ-հատ փոխես՞՞ :D Ավելի լավ ա էլ էտ կոդին չնայեմ վատանամ…: nice try, մյուս անգամ ավելի սրամիտ բան մտածիր:P
Նախ և առաջ, 2 օբյեկտ համեմատելու համար, պետք է տալ համեմատման կրիտերիան: Դու ինչ ես ուզում ապացուցել, ես լավ չեմ հասկանում: Որ Python-ը C++-ից լավնա? Կոնկրետ ինչով? Եթե միայն կոդի կարճությունը քեզ բավարարա այդպիսի եզրակացություն անելու համար, ուրեմն դու ծրագրավորման դասերից ակնհայտորեն թռնում ես:
Բանը նրանումա, որ C++-ը այնպիսի լեզույա, որով դու կարողես անել ամեն ինչ, ինչ թույլա տալիս տվյալ պլատֆոռմը: Նրա հնարավորությունները այնքան մեծ են, որ նույնիսկ պռոֆեսիոնալ, 20 տարվա փորձ ունեցող մարդը դեռ սովորելու և զարմանալու տեղ ունի: Իսկ եթե ավելացնենք boost գրադարանը, C++-ը դառնումա ամենակարող աստվածների լեզու: Ու ես չեմ զարմանա, եթե պարզվի, որ տիեզերքի սոռսերը C++-ովա գրված:) C++-ում քեզ ոչինչ չի ահմանափակում, դու նույնիսկ կարաս քեզ ոտքից խփես: Իսկ պիթոնը քո ձեռքը հենց այնպես զենք չի տա, իսկ եթե տա էլ, ապա այն կկրակի փափուկ անվնաս գնդակներով: Այս առումով C++-ը բռուտալ լեզույա, բռուտալ ծրագրավորողների համար:)
Պատկերցրու, որ պիթոնը դա արագընթաց լավ զինված ու պաշտպանված, հարմարավետ ինքնաթիռ է: Նրա ղեկին դու քեզ շատ լավ ու ինքնավստահ ես զգում : Պատկերացրեցիր? Իսկ հիմա պատկերացրու, սիպիպին դա այլմոլորակային քաղաքակրթության կողմից, սովորական մարդու համար անհասկանալի ու խորհրդավոր տեխնոլոգիաներով ստեղծված հսկայական ու սարսափելի տիեզերանավ է, որը լիցքավորված է սև մատերաիայով բեռնված մարտագլխիկներով և կարող է մի կրակոցով վերացնել մի ամբողջ գալակտիկա, բայց որը շատ դանդաղ է վերալիցքավորվում, ու որի սպասարկման համար պետք են շատ ռեսուրսներ: Պարզա որ տիեզերանավով փղի որսի գնալը մի քիչ անհարմարա, քանի որ նա նախատեսված է ուրիշ մակարդակի խնդիրներ լուծելու համար:
Պիթոնը ավելի հարմարա որոշ տիպի խնդիրներում, բայց սիպիպիյի լիարժեք էկվիվալենտ նա երբեք, ԵՐԲԵՔ չի դառնա: Ես պատրաստ եմ կարծիքս փոխել, եթե դու ինձ պիթոնով գրված լիարժեք օպեռացիոն համակարգ ցույց տաս: Կարելիա ասել, որ նրանց կիրառման ոլորտները գրեթե չեն հատվում: Եթե ուզում ես պիթոնտ համեմատել ինչ-որ բանի հետ, համեմատիր ruby-ի հետ, սրանք նույն քաշային կարգում են: Իսկ սիպիպիյիս ձեռք չտաս:B

_DEATH_
13.08.2009, 19:45
d4rkme551ah ջան ես քեզ մաղթում եմ պայծառ ապագա սիպիպիյի հետ, եթե այդպիսին կա: :)
Նախ ես ծրագրավորման դասերից կյանքում չեմ թռել, ավելի լավ ա անհեթեթ եզրակացություններ չանես:
Ինչ 2 օբյեկտ համեմատել, ինչ բան, որտեղ եմ ես տենց բան գրել ՞՞ :o
Ինձ թվում ա ես ամինչ շատ պարզ եմ գրել: Եթե պարզ չի մանրանամ
int n[10], n1[10], n2[10], n3[10] այս դեպքում հետո 10-ը 20 դարձնելը ամենաքիչը լամեռություն ա: Ես չեմ ասում Python-ը C++-ից լավնա
Ինչ վերաբերում ա լիարժեք օպեռացիոն համակարգին, ապա ինձ հանդիպաց միակ ՕՀ-ը C++ով, որ մեծ կիրառություն ունի Symbian-ն ա: Իսկ մնացածը C-ով են գրված ամենաշատը!! Իսկ Python-ով ՕՀ գրել հնարավոր չի, որովհետև ինտեռպռետատոր ա:
Ես համոզված եմ, որ դու պատկերացում չունես էտ ինչ բան ա, նախ մի հատ իմացի նոր սկսի համեմատել: Համ էլ խոսքը գնում ա շարքային ծրագրավորողի մասին, ոչ բոլորն են ՕՀ գրում, սիստեմնի ծրագրավորողները կազմում են ընդհանուր ծրագրավորողների 5%-ը հավաստի տվյալներով:
Հիմա բերերմ որոշ տիպի "խնդիրների" օրինակներ, ավելի շուտ լիարժեք ծրագրերի որոնցում Python-ը շատ մեծ կիրառություն ունի: Նախ Գուգլի սայթերի մեչ շատ ինտենսիվ օգտագործվում ա Python-ը, նույնիսկ որոշները ամբողջությամբ Python-ով են գրված, բացի դրանից շատ մեծ թվով կայքեր կան Python-ով գրված, գնալով թիվը աճում ա: Լիարժեք եռաչափական խաղեր, ագահության պատճառով քչերն են Python-ով գրում, որ հետո ծախեն, մի քանի հատ ծավալուն կա դրա համար, բայց մանր-մունր լիքը կա: Լինուքսի շատ մեծ թվով ծրագրեր կան Python-ով գրված: Որպես սկռիփթ օգտագործում է գրեթե բոլոր հանրաճանաչ ծրագրերի մեջ, օրինակ Բլենդեռ:
Ինչը վերաբերում ա քո լավատեսությանը սիպիպիյի վերաբերյալ, ապա քո հետ համաձայն չեմ: Բոլոր "մեծ "կոռպոռացիաները վերջին տարիներին փոխել են իրենց գովաբանած լեզուն: Օրինակ մայքրոսոֆթը C#, Apple-ը Objective-C, Google-ը Python, Nokia-ն Python և մի հատ էլ կար չեմ հիշում: Իդեպ Nokia-ն վերջին տարիներին շատ մեծ ներդրումներ ա անում ծրագրավորման զարգացման մեջ: Qt-ն սեփականացրեց ու LGPL դարձրեց անվճար լիցենզիան: Qt-ի լիարժեք պորտը կա Python-ի համար:
Իսկ ինչ վերաբերում ա համեմատությանը կխնդրեմ միայն C++-ը իմանալով չհամեմատել: Python-ով գրեթե բոլոր ոլորտների ծրագրեր կարելի ա գրել, առանձ տանջվելու:
Ավելի լավ կլինի ծրագրերի տիպեր ասես, որոնք C++-ով ավելի հեշտ կլինի գրել, քան Python-ով: Իսկ ՕՀ, դռայվերներ, … հանգիստ թող, քանի որ C++_ն էլ իդեալական լեզու չի համարվում kernel գրելու համար: Դռայվեռների մեծամասնությունն էլ asm-ով ա գրված :ok
Ի դեպ շուտով Google OS կլինի, kernel-ը C++-ով չի, կտեսենենք մեջը ինչքան Python-ով ծրագիր կա: Իսկ արագագործության առումով ստանդարտ մոդուլների մեծ մասը C/C++ով են գրված, արդյունքում տվյալ ինստռուկցիաները նույն արագությամբ են կատարվում:

_DEATH_
13.08.2009, 20:32
Իդեպ Python լեզվի փիլիսոփայությունը, որը C++_ի դեպքում շատ քչերն են պահպանում, որովհետև անհնար է:

Красивое лучше уродливого.
Явное лучше неявного.
Простое лучше сложного.
Сложное лучше усложнённого.
Плоское лучше вложенного.
Разрежённое лучше плотного.
Удобочитаемость важна.
Частные случаи не настолько существенны, чтобы нарушать правила.
Однако практичность важнее чистоты.
Ошибки никогда не должны замалчиваться.
За исключением замалчивания, которое задано явно.
В случае неоднозначности сопротивляйтесь искушению угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он может быть с первого взгляда не очевиден, если ты не голландец.
Сейчас лучше, чем никогда.
Однако, никогда чаще лучше, чем прямо сейчас.
Если реализацию сложно объяснить — это плохая идея.
Если реализацию легко объяснить — это может быть хорошая идея.
Пространства имён — великолепная идея, их должно быть много!

Մի թե սրանում չի կայանում պարզ, հասկանալի, տրամաբանական, որակյալ և գեղեցիկ ծրագիր գրելու գաղտնիքը՞՞

d4rkme551ah
14.08.2009, 00:14
Սկսենք սրանից:

Իսկ ինչ վերաբերում ա համեմատությանը կխնդրեմ միայն C++-ը իմանալով չհամեմատել:
Դե ինձ վերրջերս բախտ վիճակվեց առընչվել պիթոնի հետ: Համենայն դեպս “Python для чайников” գիրքը մի քիչ կարդացել եմ ու լեզվի կոնցեպցիային ծանոթ եմ: Պետք էր օնլայն գրադարանի պես մի բան գրել պիթոնով Zope սեռվեռի համար: Եղածը մի բան չեր, բայց համենայն դեպս իմ բառերը օդից չեն վերցված:

մաղթում եմ պայծառ ապագա սիպիպիյի հետ, եթե այդպիսին կա:
Կա, համոզված եղիր (http://en.wikipedia.org/wiki/C%2B%2B0x)

Ինչ 2 օբյեկտ համեմատել, ինչ բան, որտեղ եմ ես տենց բան գրել ՞՞
Ես մի քիչ աբստռակտ եմ արտահայտվել: Օբյեկտը դա ծրագրավորման մեջ հայերեն “բան” բառի համարժեքնա: Օբյեկտ O1 = C++, O2 = Python: Դու ակնհայտորեն ուզում ես ցույց տալ, որ O2>=O1, բայց դու մոռանում ես, որ նրանք նույն կլասին չեն պատկանում:

int n[10], n1[10], n2[10], n3[10] այս դեպքում հետո 10-ը 20 դարձնելը ամենաքիչը լամեռություն ա
Քեզ թվումա ես այդքանը չեմ գիտակցում? Կոնկրետ կոդը կախվածա կոնկրետ խնդրից: Կոնկրետ այն օրինակում իմ գրածը ավելի հարմարա:

Նախ ես ծրագրավորման դասերից կյանքում չեմ թռել, ավելի լավ ա անհեթեթ եզրակացություններ չանես:
Սեփական օրինակից դատելով, ես մտածեցի որ դու հավանաբար որոշ դասախոսներից լավ գիտես առարկան, ու քեզ հետաքրքիր չի նրանց դասերին նստելը: Փաստորեն սխալվեցի…

Իսկ Python-ով ՕՀ գրել հնարավոր չի, որովհետև ինտեռպռետատոր ա:
Դու դրանում համոզված էս? Իսկ ես ասում եմ հնարավորա: Դրա համար պետքա պիթոնի կոմպիլյատոր (հա, հա, դու ճիշտ հասկացար), որը պիթոնի կոդը կսարքի 2-ական մեքենայական կոդ: Ցանկացած ինտերպրետացվող կոդ հնարավորա կոմպիլյացիա անել: Սկզբում գրվումա bootloader-ը պիթոնով, ու կոմպիլյացիայա արվում: Նա իրենից ներկայացնումա հենց պիթոնի ինտեռպռետատոր: bootloader-ը բեռնվելով սկսումա կատարել կեռնելը, որը իրենից ներկայացնումա արդեն պիթոնի կոդ: Մնացածը արդեն պարզա երևի: Իսկ թե այդ հրաշքը ինչպես կաշխատի…

Դռայվեռների մեծամասնությունն էլ asm-ով ա գրված
Թյուրիմացություն! Մեծ մասը C-ովա գրված:

Իսկ ՕՀ, դռայվերներ, … հանգիստ թող, քանի որ C++_ն էլ իդեալական լեզու չի համարվում kernel գրելու համար:
Դե եթե C++-ը իդեալական չի, պիթոնը ընդհանրապես բանի պետք չի այս գործում:

Ավելի լավ կլինի ծրագրերի տիպեր ասես, որոնք C++-ով ավելի հեշտ կլինի գրել, քան Python-ով:
Ընդհանրացնենք. driver, kernel ու kernel-ին մոտ աշխատող ծրագրեր, վիրուսներ, տրոյաններ, տվյալների բազայի ղեկավարման համակարգեր (СУБД), բազմահոսք(multithread) ծրագրեր(երբ հոսքերի քանակը >= 100), 3d engine, բարձր ծանրաբեռնվածության սերվերներ, ցանկացած խոշոր բիզնես պռոյեկտ ամբողջությամբ (թեկուզ զուտ արագագործության տեսանկյունից):
Իսկ պիթոնի կիրառելիության տիրույթը դու արդեն նշեցիր:

Նախ Գուգլի սայթերի մեչ շատ ինտենսիվ օգտագործվում ա Python-ը, նույնիսկ որոշները ամբողջությամբ Python-ով են գրված, բացի դրանից շատ մեծ թվով կայքեր կան Python-ով գրված, գնալով թիվը աճում ա: … Որպես սկռիփթ օգտագործում է գրեթե բոլոր հանրաճանաչ ծրագրերի մեջ, օրինակ Բլենդեռ:
Ես նաև կավելացնեի hack tools: Իրականում շատ հարմար բանա խակեռության համար:

Բոլոր "մեծ "կոռպոռացիաները վերջին տարիներին փոխել են իրենց գովաբանած լեզուն: Օրինակ մայքրոսոֆթը C#, Apple-ը Objective-C, Google-ը Python, Nokia-ն Python և մի հատ էլ կար չեմ հիշում:
Ես քեզ համար վատ նորություններ ունեմ… քո նշած 5-ը դա ‘բոլոր մեծերը’ չեն: Դու նաև աչքաթող ես անում opensource-ի ոլորտը:

Իդեպ Nokia-ն վերջին տարիներին շատ մեծ ներդրումներ ա անում ծրագրավորման զարգացման մեջ: Qt-ն սեփականացրեց ու LGPL դարձրեց անվճար լիցենզիան: Qt-ի լիարժեք պորտը կա Python-ի համար:
Շատ գովելի քայլա Nokia-յի կողմից: QT-ին ես քիչ եմ ծանոթ, բայց այդքաննել հերիքա նրա մասին շատ լավ կարծիք կազմելու համար: Համենայն դեպս MFC-ից շատ, ՇԱՏ ավելի լավնա:

Իդեպ Python լեզվի փիլիսոփայությունը, որը C++_ի դեպքում շատ քչերն են պահպանում, որովհետև անհնար է:
Ակնհայտ հակասություն: Ավելի ճիշտ կլիներ "Python լեզվի փիլիսոփայությունը, որը C++_ի դեպքում շատ քչերն են պահպանում, որովհետև ոչ ոք պարտավոր չէ": C++-ի մեծությունը կայանում է նաև նրանում, որ դու կարող ես ընտրել քո ուզած ստիլը, քո ուզած փիլիսոփայությունը: Ի դեպ, հենց այդ ազատությունն էլ շատերին վախացնումա:

Մի թե սրանում չի կայանում պարզ, հասկանալի, տրամաբանական, որակյալ և գեղեցիկ ծրագիր գրելու գաղտնիքը՞՞
Չգիտեմ: Ամեն ինչ այդպես միանշանակ չի… Հենց այդ գախտնիքը իմանամ, կղզի կգնեմ ամերիկայի ափերի մոտ և կտեղափոխվեմ այնտեղ ապրելու:)

_DEATH_
14.08.2009, 02:15
Սեփական օրինակից դատելով, ես մտածեցի որ դու հավանաբար որոշ դասախոսներից լավ գիտես առարկան, ու քեզ հետաքրքիր չի նրանց դասերին նստելը: Փաստորեն սխալվեցի…
Դասախոսներից լավ իմանալը դեռ պատճառ չի դասերից թռնելու, քանի անգամ եմ դասախոսին ուղղել, ինչ հարց տալիս էր պատասխանում էի, հենց դրա համար էլ հավեսով դասի էի նստում: Նենց պրիմիտիվ բաներ չգիտեն դասախոսները, բայց ես չեմ մեղադրում, իրանց աշխատանքը էտա, տարիներով նույն բանը դասավանդում են ու էտ մասը փայլուն գիտեն, բայց հենց որ հանկարծ ուսումնական ծրագրից էնկողմ հարց ես տալիս կախում են…


Դու դրանում համոզված էս? Իսկ ես ասում եմ հնարավորա: Դրա համար պետքա պիթոնի կոմպիլյատոր (հա, հա, դու ճիշտ հասկացար), որը պիթոնի կոդը կսարքի 2-ական մեքենայական կոդ: Ցանկացած ինտերպրետացվող կոդ հնարավորա կոմպիլյացիա անել: Սկզբում գրվումա bootloader-ը պիթոնով, ու կոմպիլյացիայա արվում: Նա իրենից ներկայացնումա հենց պիթոնի ինտեռպռետատոր: bootloader-ը բեռնվելով սկսումա կատարել կեռնելը, որը իրենից ներկայացնումա արդեն պիթոնի կոդ: Մնացածը արդեն պարզա երևի: Իսկ թե այդ հրաշքը ինչպես կաշխատի…

Դե ճիշտ ասած էտ հարցում էտքան էլ չեմ խորացել, բայց հետաքրքիր ա պիթոնի կոմպիլյատորը ոնց ա աշխատում, ահագին բարդ պռոցես ա իմ կարծիքով: Եթե խնդրեմ ինչոր հասցե կտաս դրա վերաբերյալ, հետաքրքրեց :)


Թյուրիմացություն! Մեծ մասը C-ովա գրված:

Ինչ-որ հավատս չի գալիս, սեփական փորձից եմ ասում, դիզասեմբլեռով ինչ դռայվեր բացել եմ մինչև հիմա շատ պարզ ա եղել C-ով գրված լինելու համար :ok
Բայց դե կոմպս հին ա, կարող ա հիմա ալարկոտ են դառցել ու նոր չիփսեթների դռայվեռները C-ով են գրում :think


Դե եթե C++-ը իդեալական չի, պիթոնը ընդհանրապես բանի պետք չի այս գործում:

Բան չունեմ ասելու, ես նպատակ չունեմ ՕՀ գրելու, իսկ մնացած ոլորտներում ինչ-ոչ լուրջ թերություններ չեմ տեսնում:



Ընդհանրացնենք. driver, kernel ու kernel-ին մոտ աշխատող ծրագրեր, վիրուսներ, տրոյաններ, տվյալների բազայի ղեկավարման համակարգեր (СУБД), բազմահոսք(multithread) ծրագրեր(երբ հոսքերի քանակը >= 100), 3d engine, բարձր ծանրաբեռնվածության սերվերներ, ցանկացած խոշոր բիզնես պռոյեկտ ամբողջությամբ (թեկուզ զուտ արագագործության տեսանկյունից):
Մեկել մի կարևոր բան ավելացնեմ, Պիթոնի մոդուլներ, որոնցով հետո շարքային ծրագրավորողները առանձ գլուխ ցավացնելու մարդավարի ծրագիր գրեն:


Իսկ պիթոնի կիրառելիության տիրույթը դու արդեն նշեցիր:

Մի երկու հետաքրքիր փաստ էլ ավելացնեմ, առաջին տոռենտ կլիենտը (BitTorrent) գրվել է Պիթոն լեզվով Bram Cohen-ի կողմից: Symbian ՕՀ-ը, որի մասին գրել էի, գրված է C++ լեզվով: Nokia-ի սմարթերի ՕՀ-ն ա, որի ծրագրերի 90%-ը, եթե ոչ ավելին գրված է Պիթոնով: Հենց հեռախոսների վրա կա Պիթոնի ինտեռպռետատորը, որը շատ օգտակար է լինում ամեն տեղ ձեռքի տակ լինելով: Միշտ որպես կալկուլատոռ օգտագործում եմ ինտեռակտիվ ռեժիմում, շատ հարուստ ա մաթեմից: Նույնիսկ ստանդարտ տիպերի մեջ կոմպլեքս թիվ կա, անվերջ մեծ թվերի հետ կարելի ա գործողություններ անել: Լեկցիայի ժամանակ գռաֆիկ գծող ծրագիր գրեցի, հաջորդ ժամին մաթեմի միջանկյալի լրիվ տոմսը գրեցի :D Քիմիայի ժամին վարկյանաչար էր պետք, երկու րոպեում գրեցի օգտագործեցինք: Կարելի ա սենց ասել, ես ծրագրավորումը սովորել եմ Պիթոնով ճանապարհին ինտեռակտիվ ռեմիմում հրամանները սովորելով: Դրանից հետո մնացած լեզուները սովորելը խաղ ու պար էր ինձ համար:


Ես քեզ համար վատ նորություններ ունեմ… քո նշած 5-ը դա ‘բոլոր մեծերը’ չեն: Դու նաև աչքաթող ես անում opensource-ի ոլորտը:

Վատ նորություններ չէին, ինձ նույնիսկ հետաքրքրեց դրանցից մեծ ինչ կոռպոռացիաներ կան: Ինչ վերաբերում ա opensource-ի ոլորտը, C++_ը Python-ին մռցակից չի, քանի որ Python-ով գրված բոլոր ծրագրերը opensource են, իսկ C++_ի դեպքում opensource են հիմնականում Լինուքսի ծրագրերը, մեկել մի քանի հարգանքի արժանի մարդկանց գրած ծրագրերը, օրինակ Իգոր Պավլով :hands 7-zip-ի ամեն նոր վերսիայով ուրախացնում ա:

Հիմա արդեն քանի օր ա, Qt Creator-ով եմ ծրագիր գրում C++ լեզվով, միակ պատճառը էն ա, որ վերջում կոդը փակելու եմ :B Որ ընթացքում պատկերացնում եմ ասենք էս մի 20 տողը Պիթոնի դեպքում ընդհամենը մի մեթոդ պտի օգտագործեի գլուխս սկսում ա պտտվել: Պիթոնով երկար ժամանակ ծրագիր գրելուց հետո մնացած լեզուներով գրելը մի տեսակ անհարմար ա:

_DEATH_
14.08.2009, 02:32
Google has started a project called Unladen Swallow in 2009 with the aims of increasing the speed of the python interpreter by 5 times and improving its multithreading ability to scale to thousands of cores. :o Եվս մի լավ նորություն :hands Գնալով համոզվում եմ, որ Պիթոնին շատ մեծ ապագայա սպասվում :hands

d4rkme551ah
14.08.2009, 19:21
Դե ճիշտ ասած էտ հարցում էտքան էլ չեմ խորացել, բայց հետաքրքիր ա պիթոնի կոմպիլյատորը ոնց ա աշխատում, ահագին բարդ պռոցես ա իմ կարծիքով: Եթե խնդրեմ ինչոր հասցե կտաս դրա վերաբերյալ, հետաքրքրեց
Ճիշտն ասած ես չեմ մտածում, որ այդպիսի կոմպիլյատոր կա, դա բավականին բարդ գործա հավանաբար: Բայց գուգլը ասումա, որ նման բաներ կան, կարելիա դրանք հարմարեցնել, օրինակ ShedSkin, PyPy lol:), սրանք Python->C/C++ կոնվերտորներ են : Մի հատ էլ Pycro կա ինչ-որ, որը հենց կոմպիլյատորա, բայց ոնց հասկացա շուտվանից չի թարմացվում:

Ինչ-որ հավատս չի գալիս, սեփական փորձից եմ ասում, դիզասեմբլեռով ինչ դռայվեր բացել եմ մինչև հիմա շատ պարզ ա եղել C-ով գրված լինելու համար
Բայց դե կոմպս հին ա, կարող ա հիմա ալարկոտ են դառցել ու նոր չիփսեթների դռայվեռները C-ով են գրում
Դռայվեռի կոմպիլյատորը առանձինա, սովորական չի: Շատ ակուռատնի կոդա գեներացնում, ու մաքուր C-ով գրված կոդը շատ նմանա asm-ին:

Հենց հեռախոսների վրա կա Պիթոնի ինտեռպռետատորը, որը շատ օգտակար է լինում ամեն տեղ ձեռքի տակ լինելով: Միշտ որպես կալկուլատոռ օգտագործում եմ ինտեռակտիվ ռեժիմում, շատ հարուստ ա մաթեմից: Նույնիսկ ստանդարտ տիպերի մեջ կոմպլեքս թիվ կա, անվերջ մեծ թվերի հետ կարելի ա գործողություններ անել: Լեկցիայի ժամանակ գռաֆիկ գծող ծրագիր գրեցի, հաջորդ ժամին մաթեմի միջանկյալի լրիվ տոմսը գրեցի: Քիմիայի ժամին վարկյանաչար էր պետք, երկու րոպեում գրեցի օգտագործեցինք: Կարելի ա սենց ասել, ես ծրագրավորումը սովորել եմ Պիթոնով ճանապարհին ինտեռակտիվ ռեմիմում հրամանները սովորելով: Դրանից հետո մնացած լեզուները սովորելը խաղ ու պար էր ինձ համար:
Եվս մի լավ կրառություն ես գտել:)
ինձ նույնիսկ հետաքրքրեց դրանցից մեծ ինչ կոռպոռացիաներ կան:
Դե սրանք էլի
http://en.wikipedia.org/wiki/Category:Companies_in_the_NASDAQ-100_Index

_DEATH_
14.08.2009, 20:39
Ճիշտն ասած ես չեմ մտածում, որ այդպիսի կոմպիլյատոր կա, դա բավականին բարդ գործա հավանաբար: Բայց գուգլը ասումա, որ նման բաներ կան, կարելիա դրանք հարմարեցնել, օրինակ ShedSkin, PyPy lol:), սրանք Python->C/C++ կոնվերտորներ են : Մի հատ էլ Pycro կա ինչ-որ, որը հենց կոմպիլյատորա, բայց ոնց հասկացա շուտվանից չի թարմացվում:

Իմ կարծիքով անիմաստ ա կոմպիլյատոռ ստեղծել Պիթոնի համար: Կան որոշ լեզուներ, որոնք հենց սկզբից և ինտեռպռետատոռ են և կոմպիլյատոռ: Ծրագիրը գրելու պռոցեսը ինտեռպռետատոռով ա արվում, ամենավերջում նոր կոմպիլացվում: Բայց Պիթոնի դեպքում իմ կարծիքով լիարժեք կոմպիլյատոռ ստեղծել հնարավոր չի, որովհետև դա հենց սկզբից պետք ա հաշվի առնվեր լեզուն ստեղծելուց: Թե չէ նենց բաներ կան Պիթոնի մեջ, որ կոմպիլյատոռի դեպքում անհնար ա, պետք ա ոչ թե թարգմանվի, այլ զրոյից որոշ մասեր գրվի կոմպիլացվող լեզվով, որը նույն բանը կանի:


Դռայվեռի կոմպիլյատորը առանձինա, սովորական չի: Շատ ակուռատնի կոդա գեներացնում, ու մաքուր C-ով գրված կոդը շատ նմանա asm-ին:
Տարբեր կոմպիլյատոռներով փորձել եմ, նույնիսկ հատուկ օպտիմալացնող, միևնույն ա asm-ով գրվածի չափը վերջում ավելի փոքր ա լինում: Մի հատ asm-ի գիրքի մեջ եմ կարդացել, գրած էր չնայած նրան, որ շատ ավելի քիչ ջանքեր գործադրելով դռայվերը կարելի է գրել բարձր մակարդակի լեզվով, ներկայիս դռայվերի մեծ մասը asm-ով ա գրված, 2005 թվի գիրք, կարող ա վիճակը փոխվել ա՞՞ :think


Դե սրանք էլի
http://en.wikipedia.org/wiki/Category:Companies_in_the_NASDAQ-100_Index
Ես նշել էի այն կոռպոռացիաները, որոնք ՕՀ ունեն (չնայած Գուգլը պատռաստվում ա ունենա) և շատ մեծ տեղ են գրավում շուկայում, որովհետև խոսքը դրա մասին էր գնացել: :)

aerosmith
14.08.2009, 21:38
էէէէէէէհհհհհ ժողովուրդ ջան մի բան ասեմ. մենակ էս թեման բացողը չնեղանա, սա անիմաստ թեմայա, որովհետև ամեն մի լեզու նախատեսված է ինչ-որ բնագավառի ծրագրավորման համար, և սխալ է ասե, որ այս լեզուն նրա համեմատ լավնա, կամ վատը հաշվի առնելով միևնույն ալգորիթմի կոդի երկարությունն ու կարճությունը։
սի լեզուն անցելա շատ երկար ճանապարհ, ստեղծվել են հետագայում ադդիշն ներ, և այդ լեզվին տվել են նաև օբյեկտային մոտիվներ...
այն հիրառելի է ինչպես բարդ մոլեկուլյար հաշվարկ վերամշակուղ ծրագրեր գրելու համար, այնպես էլ դռայվերներ գրելու համար։
իսկ փիթոնի մասին բան չեմ կարող ասել, որովհետև ես էդ լեզուն չգիտեմ, միայն ինչքան հարցածրույցներ, կամ ֆորումներում կարդացել եմ սիմբիան օհ-ի համար նախատեսված ծրագրերը գրվում են փիթոնով։ Դրանից էլ հետևում է, որ փիթոնն լ նախատեսված է էդ բնագավառի ծրագրավորման համար։
մի խոսքով պետք չի երկու լեզու միմյանց հետ համեմատել։

d4rkme551ah
14.08.2009, 21:49
Թե չէ նենց բաներ կան Պիթոնի մեջ, որ կոմպիլյատոռի դեպքում անհնար ա, պետք ա ոչ թե թարգմանվի, այլ զրոյից որոշ մասեր գրվի կոմպիլացվող լեզվով, որը նույն բանը կանի:
Հենց այդ պատճառով էլ պիթոնով ՕՀ ոչ ոք չի գրի, չնայած տեսականորեն հնարավորա:

Ես նշել էի այն կոռպոռացիաները, որոնք ՕՀ ունեն (չնայած Գուգլը պատռաստվում ա ունենա) և շատ մեծ տեղ են գրավում շուկայում, որովհետև խոսքը դրա մասին էր գնացել: :)
Իսկ ինչ անեն մյուս խոշոր կամպանյաները, որոնք ունեն ու շարունակում են սիպիպիյով մեծ պռոյեկտներ գրել, նրանց կարծիքը հաշվի չի առնվում? Oracle, IBM, Intel, մնացածը, խաղից դուրս են, շուկայի վրա ազդեցություն չունեն? Օրինակ Intel-ը ունի սիպիպիյով գրված շատ լուրջ մաթեմատիկական ու նկարների թվային մշակման գրադարան, որը դեռ շատ երկար տարիներ պահանջված կլինի: Սիպիպիյին սպանողը դեռ չի ծնվել, նա արդեն անցելա ժամանակի փորձությունը ու ապացուցելա իր կենսունակությունը և պիտանելիությունը: Պացիենտը առողջա ու կենսունակ, դեռ մի բան էլ շարունակումա զարգանալ, լուրջ հիվանդության կամ մոտալուտ մահվան ոչ մի սիմպտոմներ չկան, կարելիա դադարացնել հետազոտումը ու դուրս գրել, համաձայն չեք բժիշկ?:8

_DEATH_
14.08.2009, 22:01
միայն ինչքան հարցածրույցներ, կամ ֆորումներում կարդացել եմ սիմբիան օհ-ի համար նախատեսված ծրագրերը գրվում են փիթոնով։ Դրանից էլ հետևում է, որ փիթոնն լ նախատեսված է էդ բնագավառի ծրագրավորման համար։
մի խոսքով պետք չի երկու լեզու միմյանց հետ համեմատել։

Տենց բան չկա, Պիթոն լեզվի քսան տարին շուտուվ կլռանա, իսկ Նոկիան ընդհամենը 5-6 տարի առաջ ա պոռտը ստեղծել: Գրեթե բոլոր ՕՀ-երի համար Պիթոնի պոռտը կա, քռոսպլատֆոեմեննի լեզու ա:
Ինչ վերաբերում ա լեզվի բնագավառին, ապա ասեմ որ շատ ես սխալվում, Պիթոնով գրեթե բոլոր բնագավառների ծրագրեր կարելի ա գրել՝ սեռվեռ-կլիենտ, սայթ, գիտական ոլորտների համար շատ հարմար ա, եռաչափական խաղեր…

Ես էս թեման հենց ընենց տեղը չեմ բացել, երկուսն էլ general-purpose ծրագրավորման լեզու են, երկուսն էլ ինչ-որ կոնկրետ բնագավառի համար չեն նախատեսված:
Համոզված եմ, որ եթե մի քանի տասնամյակ առաջ ինտեռնետը սենց զարգացած լինել, էն ժամանակները երբ C++ _ը նոր էր հայտնվել, մեկը թեմա կբացեր C++ vs asm ու քանի որ մեծամասնությունը asm գիտեին, իսկ C++_ի հետ ծանոթ չեին, մի երկու բան էն ընդհամենը լսել, կասեին չէ է ինչ C++, asm-ով ամենինչ հնարավոր ա անել, իսկ C++_ով ճիշտ ա ծրագրը ավելի արագ ա գրվում, բայց քանի որ բարձր մակարդակի ա, ոչ ամենինչ ա հնարավոր, օրինակ սենց-սենց բան… Էնքան էտ համոզմունքին են մնացել երևի, մինչև հասել ենք էն օրին, երբ գրեթե բոլոր բնագավառների ծրագրերը բարձր մակարդակի լեզվով են գրվում: Ես չեմ վռազում, մի տաս-քսան տարի հանգիստ կսպասեմ :ok

_DEATH_
14.08.2009, 22:15
Իսկ ինչ անեն մյուս խոշոր կամպանյաները, որոնք ունեն ու շարունակում են սիպիպիյով մեծ պռոյեկտներ գրել, նրանց կարծիքը հաշվի չի առնվում? Oracle, IBM, Intel, մնացածը, խաղից դուրս են, շուկայի վրա ազդեցություն չունեն? Օրինակ Intel-ը ունի սիպիպիյով գրված շատ լուրջ մաթեմատիկական ու նկարների թվային մշակման գրադարան, որը դեռ շատ երկար տարիներ պահանջված կլինի: Սիպիպիյին սպանողը դեռ չի ծնվել, նա արդեն անցելա ժամանակի փորձությունը ու ապացուցելա իր կենսունակությունը և պիտանելիությունը: Պացիենտը առողջա ու կենսունակ, դեռ մի բան էլ շարունակումա զարգանալ, լուրջ հիվանդության կամ մոտալուտ մահվան ոչ մի սիմպտոմներ չկան, կարելիա դադարացնել հետազոտումը ու դուրս գրել, համաձայն չեք բժիշկ?:8

Երևի թե ինձ լավ չես հասկացել: Քանի որ դու սկսեցիր ՕՀ ստեղծելու մասին խոսել, ես ասեցի որ խոսքը ՕՀ ստեղծելու մասին չի, խոսքը շարքային ծրագրավորողի մասին ա, համաձայնվի որ ոչ բոլորն են սիստեմնի ծրագրավորող: Ու բերեցի մեծ կոռպոռացիաների ցուցակը, որոնք ՕՀ են ստեղծել ու ծրագրավորողներին որ լեզվով են խրախուսում ծրագիր գրել: Ինչ վերաբերում ա սիպիպիյի մեռնելուն, ես տենց բան չեմ ասում, սիպիպին չի մեռնի, asm-ի փորձը ցույց ա տվել, asm-ը էլի հիմա ինչոր տեղ գործածվում ա, ապագայում կոմպերը նենց հզոր պռոց են ունենալու, որ արագագործության առումով տարբերություն չի զգացվելու ինտեռպռետատոր-կոմպիլյատոռ: Ու ոնց որ պատմությունն ա ցույց տվել մարդիկ ձգտում են ինչքան հնարավոր է բարձ մակարդակի, կգա մի օր, որ սիպիպին կհայտնվի նույն տեղում, որտեղ հիմա asm-ն է: :ok

d4rkme551ah
14.08.2009, 22:21
Տենց բան չկա, Պիթոն լեզվի քսան տարին շուտուվ կլռանա, իսկ Նոկիան ընդհամենը 5-6 տարի առաջ ա պոռտը ստեղծել: Գրեթե բոլոր ՕՀ-երի համար Պիթոնի պոռտը կա, քռոսպլատֆոեմեննի լեզու ա:
Ինչ վերաբերում ա լեզվի բնագավառին, ապա ասեմ որ շատ ես սխալվում, Պիթոնով գրեթե բոլոր բնագավառների ծրագրեր կարելի ա գրել՝ սեռվեռ-կլիենտ, սայթ, գիտական ոլորտների համար շատ հարմար ա, եռաչափական խաղեր…

Ես էս թեման հենց ընենց տեղը չեմ բացել, երկուսն էլ general-purpose ծրագրավորման լեզու են, երկուսն էլ ինչ-որ կոնկրետ բնագավառի համար չեն նախատեսված:
Համոզված եմ, որ եթե մի քանի տասնամյակ առաջ ինտեռնետը սենց զարգացած լինել, էն ժամանակները երբ C++ _ը նոր էր հայտնվել, մեկը թեմա կբացեր C++ vs asm ու քանի որ մեծամասնությունը asm գիտեին, իսկ C++_ի հետ ծանոթ չեին, մի երկու բան էն ընդհամենը լսել, կասեին չէ է ինչ C++, asm-ով ամենինչ հնարավոր ա անել, իսկ C++_ով ճիշտ ա ծրագրը ավելի արագ ա գրվում, բայց քանի որ բարձր մակարդակի ա, ոչ ամենինչ ա հնարավոր, օրինակ սենց-սենց բան… Էնքան էտ համոզմունքին են մնացել երևի, մինչև հասել ենք էն օրին, երբ գրեթե բոլոր բնագավառների ծրագրերը բարձր մակարդակի լեզվով են գրվում: Ես չեմ վռազում, մի տաս-քսան տարի հանգիստ կսպասեմ :ok
Պարզա, պացիենտը ոչ թե սիպիպինա, այլ դու:) Ֆանատիզմը լավ բանի չի բերի: Եթե քեզ թվաց որ ես սիպիպիյի ֆանատ եմ, դու սխալվում ես: Ես պարզապես որոշեցի բանավեճի մեջ մտնեմ հաճույքի համար, եթե դու սիպիպիյի կողմից լինեիր ես կսկսեի պիթոնին պաշտպանել: Ծրագրավորողի համար լեզուն երկրորդական պետքա լինի: Դու լեզուն պետքա ընտրես խնդրից ելնելով: Իսկ ճիշտը սարսափելի պարզա, նման բանավեճերը նույնքան անիմաստ են որքան առօրյա զրույցները եղանակի մասին, շատ-շատ մտքի մարզանք, ոչ ավելին: Իսկ եթե դու սկզբից ասեիր կոնկրետ խնդիրը, հետո հարցը դնեիր թե որ լեզունա լավ իրագործման համար, արդեն կարելի էր լուրջ խոսալ: Իսկ սենց, իմաստ չկա շարունակելու:

Արիացի
29.08.2009, 18:34
Փաստորեն լավ էլ լուրջ թեմա ա դառել Pythoni համեմատելը C++-ի հետ: :D
Դնել ու լուրջ քննարկել, թե որն ա ավելի լավ` Python-ը, թե C++-ը, նույնն ա, որ քննարկես, թե որն ա ավելի լավ մեքենա` կարուսելների ավտոդրոմի ավտոները, թե իսկական ավտոն? Պարզ ա` առաջինը լավն ա, հարմար ա, բենզին չի տանում, երեխեքի համար լավ ա ու քշելն էլ հեշտ ա` ընդամենը մի գազ ա ու մի ռույլ: Բայց եթե ուզում ես, որ էդ մեքենան քեզ իրոք օգուտ բերի, պետք ա ընտրես երկրորդը` իսկական ավտոն, քանի որ առաջինով ավտոդրոմի տարածքից դուրս չես կարում երթևեկես:
Եթե ինչ-որ հարցեր մնացին, ասեմ, որ համեմատության մեջ Python-ը ավտոդրոմի ավտոն ա: ;)

_DEATH_
29.08.2009, 18:48
Փաստորեն լավ էլ լուրջ թեմա ա դառել Pythoni համեմատելը C++-ի հետ: :D
Դնել ու լուրջ քննարկել, թե որն ա ավելի լավ` Python-ը, թե C++-ը, նույնն ա, որ քննարկես, թե որն ա ավելի լավ մեքենա` կարուսելների ավտոդրոմի ավտոները, թե իսկական ավտոն? Պարզ ա` առաջինը լավն ա, հարմար ա, բենզին չի տանում, երեխեքի համար լավ ա ու քշելն էլ հեշտ ա` ընդամենը մի գազ ա ու մի ռույլ: Բայց եթե ուզում ես, որ էդ մեքենան քեզ իրոք օգուտ բերի, պետք ա ընտրես երկրորդը` իսկական ավտոն, քանի որ առաջինով ավտոդրոմի տարածքից դուրս չես կարում երթևեկես:
Եթե ինչ-որ հարցեր մնացին, ասեմ, որ համեմատության մեջ Python-ը ավտոդրոմի ավտոն ա: ;)

C++_ը ավտոդրոմի ավելի նման ա, եթե տենց համեմատենք, քանի որ C++ պլատֆորմից, կոմպից և շատ այլ բաներից կախված ա; Եթե ավտո ենք քնարկում սենց ասեմ մենակ որոշ ՕՀ-երի վրա կարաս քշես, իսկ Պիթոնը գրեթե ամեն տեղ կարաս քշես; Գուգլը լուրջ պռոյեկտ ա սկսել, ամենաարագագործ ինտեռպռետատորն ա դարձնելու; Նոր ՕՀ ա ունենալու ծրագրերի մեծ մասը Պիթոնով, բռոուզերի մեջ Գուգլի շուտով JS-ի տեղը Պիթոն ա լինելու, բացի դրանից սեռվերի վրա էլ կա, հեռախոսների մեջ և մնացած բոլոր տեղերը, կարճ ասած ամենուր; Իսկ C++-ը իսկական ավտոդրոմ ա, մենակ որոշ տեղեր կարաս քշես, ընենց որ համեմատումդ լրիվ թարս էր...
Եթե դու իմանաիր Պիթոնի բուն նպատակը, տենց անհեթեթ բան չեիր ասի, Պիթոնի նպատակը հենց էն ա որ ավտոդրոմ չլինի, պլատֆորմից կախված չլինի; Ուր ուզես քշես ու լրիվ նույն ձևի; Իսկ այ C++-_ի դեպքում կարող ա մի տեղ գազը տոռմուզ դառնա;

_DEATH_
29.08.2009, 18:58
Պարզա, պացիենտը ոչ թե սիպիպինա, այլ դու:) Ֆանատիզմը լավ բանի չի բերի: Եթե քեզ թվաց որ ես սիպիպիյի ֆանատ եմ, դու սխալվում ես: Ես պարզապես որոշեցի բանավեճի մեջ մտնեմ հաճույքի համար, եթե դու սիպիպիյի կողմից լինեիր ես կսկսեի պիթոնին պաշտպանել: Ծրագրավորողի համար լեզուն երկրորդական պետքա լինի: Դու լեզուն պետքա ընտրես խնդրից ելնելով: Իսկ ճիշտը սարսափելի պարզա, նման բանավեճերը նույնքան անիմաստ են որքան առօրյա զրույցները եղանակի մասին, շատ-շատ մտքի մարզանք, ոչ ավելին: Իսկ եթե դու սկզբից ասեիր կոնկրետ խնդիրը, հետո հարցը դնեիր թե որ լեզունա լավ իրագործման համար, արդեն կարելի էր լուրջ խոսալ: Իսկ սենց, իմաստ չկա շարունակելու:

Ընգեր ջան :angry ուզում ես վիրավորած լինես պարտադիր??
Ես ոչ մի բանի ֆանատն էլ չեմ: Ավելի շատ դու ես սիպիպիյի ֆանատի նման, քան թե ես Պիթոնի: Գրեթե համոզված եմ, որ սիպիպի ասեի, դու Պիթոնի կողմը չէիր անցնելու: Այ էտ մի բանում սխալվում ես, լեզուն երկրորդական չի, բոլոր լուրջ ծրագրավորողները հիմնական լեզու են ընտրում, մարդու կյանքը շատ կարճ է էտքան անիմաստ գլուխը ծանրաբեռնելու համար: Երևի թե ավելի լավ կլիներ վերնագիրը դնեի Ինտեռպռետատոր և կոմպիլյատոռ, որն է ծրագրավորողի համար ավելի հարմար: Ցանկացած տեղ մտի ու հարցրու, բոլորը կասեն ինտեռպռետատոր: Միակ խնդիրը օգտագործողի բողոքն է` արագությունը, մի քանի ամսից Գուգլը կլուծի, արդեն իսկ ֆանտաստիկ արագության են հասցրել Պիթոնի ինտեռպռետատորը, ուղակի ռեկորդ ա: Իսկ ժամանակակից կոմպերի վրա ընդհանրապես տարբերություն չի զգացվի արագության մեջ սիպիպի թե Պիթոն: Գուգլը հասկացել ա, որ շատ խճճված ա վեբ ծրագրավորումը, որոշել ա և՛ սեռվերի վրա և՛ բռաուզերի վրա Պիթոնի արագագործ Ինտեռպռետատոր ստեղծել և տեղադրել: Չնայած արդեն կա, բայց մնացած ինտեռպռետատորների արագությանն ա...
Ճիշտ ա վեբի հարցում առայժմ այնքան էլ ընդլայնված չի, ինչպես օրինակ PHP-ի մեջ պատրաստի պիցայի գովազդ կա ինչքան գիտեմ :D
Բայց շատ արագ տեմպերով է զարգանում, մնացածի համեմատ, դրա համար էլ դեռ որպես ստանդարտ չեն հաստատել:

Արիացի
29.08.2009, 19:21
C++_ը ավտոդրոմի ավելի նման ա, եթե տենց համեմատենք, քանի որ C++ պլատֆորմից, կոմպից և շատ այլ բաներից կախված ա; Եթե ավտո ենք քնարկում սենց ասեմ մենակ որոշ ՕՀ-երի վրա կարաս քշես, իսկ Պիթոնը գրեթե ամեն տեղ կարաս քշես; Գուգլը լուրջ պռոյեկտ ա սկսել, ամենաարագագործ ինտեռպռետատորն ա դարձնելու; Նոր ՕՀ ա ունենալու ծրագրերի մեծ մասը Պիթոնով, բռոուզերի մեջ Գուգլի շուտով JS-ի տեղը Պիթոն ա լինելու, բացի դրանից սեռվերի վրա էլ կա, հեռախոսների մեջ և մնացած բոլոր տեղերը, կարճ ասած ամենուր; Իսկ C++-ը իսկական ավտոդրոմ ա, մենակ որոշ տեղեր կարաս քշես, ընենց որ համեմատումդ լրիվ թարս էր...
Եթե դու իմանաիր Պիթոնի բուն նպատակը, տենց անհեթեթ բան չեիր ասի, Պիթոնի նպատակը հենց էն ա որ ավտոդրոմ չլինի, պլատֆորմից կախված չլինի; Ուր ուզես քշես ու լրիվ նույն ձևի; Իսկ այ C++-_ի դեպքում կարող ա մի տեղ գազը տոռմուզ դառնա;

Նենց տպավորություն ա, որ էս թեման բացել ես, որպեսզի մարդկանց ապացուցես, որ պիթոնը սիպիպի-ից լավն ա, բայց դա տենց չի:
Քո ասած միակ առավելությունը, որի վրա շեշտը դրել ես էն ա, որ պիթոնը պլատֆորմից անկախ ա, բայց չէ որ նույն C++-ով գրած կոդն էլ ա պլատֆորմից անկախ ու եթե դու կոդերը կոմպիլյացիա անես քո ուզած ՕՍ-ի տակ ապա կստանաս քո ուզած ՕՍ-ի էքզե-ն: C++-ի համար կան բազմաթիվ գրադարաններ` STL-ը, boost-ը, QT-ն, որոնք լրիվ հերիք են ցանկացած ծրագիր իրականացնելու համար ու որոնք պլատֆորմից անկախ են: Գրիր ու որտեղ ուզում ես կոմպիլացիա արա:
Մի խոսքով, եթե դու էնքան C++-իմանայիր, որքան որ ես Python, սենց անհեթեթ թեմա չէիր բացի: ;)

_DEATH_
29.08.2009, 19:52
Մի խոսքով, եթե դու էնքան C++-իմանայիր, որքան որ ես Python, սենց անհեթեթ թեմա չէիր բացի: ;)

Հիմա C++ ավելի լավ գիտեմ, էն ժամանակ երբ թեման բացում էի էտքան լավ չգիտեի:
Քյուտ գիտեմ, կոմպիլացիա արեցի վինի ու լինուքսի համար, նորմալ աշխատեց:
Ճիշտ ա հիմա սենց թեմա չէի բացի: Բայց ես չեմ ուզում ապացուցած լինեմ որն ա լավը, ես ուղակի ուզում եմ համեմատել ծրագրավորողի տեսանկյունից որն ա ավելի հարմար ու որը ապագա ունի: Սենց հարց տամ, դուք իսկապես համոզված եք որ սիպիպին ապագայում սենց տարածված ա լինելու ինչ որ հիմա, իսկ Պիթոնը, որը էսքան արագ տեմպերով ճանաչում ա ձեռք բերում մնալու մառախուղում…
Մեր հայ ծրագրավորղների պռոբլեմն ա, մի հատ սիպիպի գիտեն, ուրիշ բանի անուն տալիս ես, բա չէ, չգիտեմ էտ ինչ ա, բայց սիպիպին հաստատ ավելի լավն ա:

Արիացի
29.08.2009, 21:01
Հիմա C++ ավելի լավ գիտեմ, էն ժամանակ երբ թեման բացում էի էտքան լավ չգիտեի:
Քյուտ գիտեմ, կոմպիլացիա արեցի վինի ու լինուքսի համար, նորմալ աշխատեց:
Ճիշտ ա հիմա սենց թեմա չէի բացի: Բայց ես չեմ ուզում ապացուցած լինեմ որն ա լավը, ես ուղակի ուզում եմ համեմատել ծրագրավորողի տեսանկյունից որն ա ավելի հարմար ու որը ապագա ունի: Սենց հարց տամ, դուք իսկապես համոզված եք որ սիպիպին ապագայում սենց տարածված ա լինելու ինչ որ հիմա, իսկ Պիթոնը, որը էսքան արագ տեմպերով ճանաչում ա ձեռք բերում մնալու մառախուղում…
Մեր հայ ծրագրավորղների պռոբլեմն ա, մի հատ սիպիպի գիտեն, ուրիշ բանի անուն տալիս ես, բա չէ, չգիտեմ էտ ինչ ա, բայց սիպիպին հաստատ ավելի լավն ա:

Ես համոզված եմ, որ շատ լեզուներ դեռ կստեղծվեն ու կվերանան, բայց դեռ մինիմում մի տասնամյակ C++-ը մնալու ա նենց ոնց որ կա, այսինքն այն ոչ բոլորն են սիրում ու հասկանում, բայց ով հասկանում ա էլ ուրիշ լեզվի կարիք չի ունենում: Դու պիթոն ես գովում, ես քեզ կարող եմ ասել, դու պիթոնով կարող ա ինչ-որ թեթև խաղային մակարդակի ծրագրեր ես գրում, իսկ ես օրինակ սիպիպի-ով վեբսայթերի որոնման ու ինդեքսավորման համակարգ եմ գրել: Հիմա հարց եմ տալիս, արդյոք դու պիթոնով կկարողանայիր նման բան գրել ու եթե գրեիր, ամբողջ .am զոնան ինդեքսավորելու համար քո ծրագիրը ինչքան ժամանակ կաշխատեր, ու եթե գրեիր արդյոք քո գրած կոդը ավելի փոքր կլիներ քան իմ գրածը?
Իսկ հայ ծրագրավորողները հաստատ տենց պրոբլեմ չունեն: Ավելին ասեմ, իրականում ծրագրավորողը չի էլ մտածում, թե պիթոնն ա լավ, թե սիպիպին, որովհետև նման հարցը շատ անհեթեթ է: Ու լուրջ ծրագիր գրելուց օգտագործվում են երկուսը համատեղ, յուրաքանչյուրը իր առավելություններով: Օրինակ, եթե գրվում է ծրագիր, որը ասենք պետք է և բարդ մաթեմատիկական հաշվարկներ անի, և գրաֆիկական ինտերֆեյս ունենա, ապա C++-ով գրվում է հաշվարկային մասը ու ստեղծվում է որևէ սկրիպտային լեզվի (օրինակ Tcl կամ Python) նոր գրաֆիկական մոդուլ, որի միջոցով այդ սկրիպտային լեզվով հենց ստեղծվում է ծրագրի գրաֆիկական մասը: Էնպես որ, պետք չի ընգնել անիմաստ հարցերի մեջ, պետք ա սովորել ամեն ինչ ու ամենակարևորը, պետք ա ճիշտ հասկանալ ցանկացած լեզվի առավելությունները և թերությունները:

_DEATH_
29.08.2009, 21:42
Ես համոզված եմ, որ շատ լեզուներ դեռ կստեղծվեն ու կվերանան, բայց դեռ մինիմում մի տասնամյակ C++-ը մնալու ա նենց ոնց որ կա, այսինքն այն ոչ բոլորն են սիրում ու հասկանում, բայց ով հասկանում ա էլ ուրիշ լեզվի կարիք չի ունենում: Դու պիթոն ես գովում, ես քեզ կարող եմ ասել, դու պիթոնով կարող ա ինչ-որ թեթև խաղային մակարդակի ծրագրեր ես գրում, իսկ ես օրինակ սիպիպի-ով վեբսայթերի որոնման ու ինդեքսավորման համակարգ եմ գրել: Հիմա հարց եմ տալիս, արդյոք դու պիթոնով կկարողանայիր նման բան գրել ու եթե գրեիր, ամբողջ .am զոնան ինդեքսավորելու համար քո ծրագիրը ինչքան ժամանակ կաշխատեր, ու եթե գրեիր արդյոք քո գրած կոդը ավելի փոքր կլիներ քան իմ գրածը?
Իսկ հայ ծրագրավորողները հաստատ տենց պրոբլեմ չունեն: Ավելին ասեմ, իրականում ծրագրավորողը չի էլ մտածում, թե պիթոնն ա լավ, թե սիպիպին, որովհետև նման հարցը շատ անհեթեթ է: Ու լուրջ ծրագիր գրելուց օգտագործվում են երկուսը համատեղ, յուրաքանչյուրը իր առավելություններով: Օրինակ, եթե գրվում է ծրագիր, որը ասենք պետք է և բարդ մաթեմատիկական հաշվարկներ անի, և գրաֆիկական ինտերֆեյս ունենա, ապա C++-ով գրվում է հաշվարկային մասը ու ստեղծվում է որևէ սկրիպտային լեզվի (օրինակ Tcl կամ Python) նոր գրաֆիկական մոդուլ, որի միջոցով այդ սկրիպտային լեզվով հենց ստեղծվում է ծրագրի գրաֆիկական մասը: Էնպես որ, պետք չի ընգնել անիմաստ հարցերի մեջ, պետք ա սովորել ամեն ինչ ու ամենակարևորը, պետք ա ճիշտ հասկանալ ցանկացած լեզվի առավելությունները և թերությունները:

Ինչ կարիք կա հեծանիվ հայտանագործելու? Python-ով ես չեմ գրի վեբսայթերի որոնման ու ինդեքսավորման համակարգ, քանի որ կա շատ օպտիմալ գրված մոդուլ C++_ով Պիթոնի համար, որը այսինքն օգտագործելու դեպքում նույն արագոգործությունն ա ապահովում: Մնում ա էտ մոդուլը օգտագործել: Իմ ասածը ինչն ա, Պիթոնը շատ հարուս տ բազա ունի C++_ով գրված օպտիմալ մոդուլների, որոնցով շատ հանգիստ կարելի ա մի քանի րոպեում ծրագիր գրել, լրիվ օրինական, շատ ավելի ապահով, անսխալ, արագագործությամբ գրեթե չզիճող, քան թե ես իմ թանկագին ժամանակը վատնեի սիպիպիով հեծանիվ հայտնագործեի? Չէ որ հենց սիպիպիյի մասին նույն բանն էին ասում, պետք ա ստեղծել սիստեմավորված կլասսների բազա, սակայն ոչ մի բան չստացվեց, խառը եսիմ ինչքան պետք ա ման գաս, որ քո ուզած բանը գտնես, իսկ Պիթոնի դեպքում հենց արդեն ինտեռպռետատորի հետ գրեթե բոլոր հաճախակի պետք եկող մոդուլները կան: Էլ չեմ ասում ներսարված բաների մասին, տիպերի մեթոդները էնքան շատ են ու հարուստ, որ օրինակ վինդոուսի համար ծրագիր գրելուց ֆունկցիա մեկ-երկու հատ ա պետք լինում, դաս ընդհանրապես պետք չի լինում, էտ նույն ծրագիրը գրում եմ սիպիպյով քսան հատ ֆունկցիա, հինգ հատ դաս: Պիթոնի ծրագրի կոդի չափը 2 կբ, C++_ինը 25 կբ: Արագագործության տարբերություն գրեթե չեմ զգում: Մի թե տարբերությունը ահռելի չի: Երկուսն էլ ընդհանուր ուղվածության ծրագրավորման լեզու են:

Արիացի
31.08.2009, 11:47
Ինչ կարիք կա հեծանիվ հայտանագործելու? Python-ով ես չեմ գրի վեբսայթերի որոնման ու ինդեքսավորման համակարգ, քանի որ կա շատ օպտիմալ գրված մոդուլ C++_ով Պիթոնի համար, որը այսինքն օգտագործելու դեպքում նույն արագոգործությունն ա ապահովում: Մնում ա էտ մոդուլը օգտագործել: Իմ ասածը ինչն ա, Պիթոնը շատ հարուս տ բազա ունի C++_ով գրված օպտիմալ մոդուլների, որոնցով շատ հանգիստ կարելի ա մի քանի րոպեում ծրագիր գրել, լրիվ օրինական, շատ ավելի ապահով, անսխալ, արագագործությամբ գրեթե չզիճող, քան թե ես իմ թանկագին ժամանակը վատնեի սիպիպիով հեծանիվ հայտնագործեի? Չէ որ հենց սիպիպիյի մասին նույն բանն էին ասում, պետք ա ստեղծել սիստեմավորված կլասսների բազա, սակայն ոչ մի բան չստացվեց, խառը եսիմ ինչքան պետք ա ման գաս, որ քո ուզած բանը գտնես, իսկ Պիթոնի դեպքում հենց արդեն ինտեռպռետատորի հետ գրեթե բոլոր հաճախակի պետք եկող մոդուլները կան: Էլ չեմ ասում ներսարված բաների մասին, տիպերի մեթոդները էնքան շատ են ու հարուստ, որ օրինակ վինդոուսի համար ծրագիր գրելուց ֆունկցիա մեկ-երկու հատ ա պետք լինում, դաս ընդհանրապես պետք չի լինում, էտ նույն ծրագիրը գրում եմ սիպիպյով քսան հատ ֆունկցիա, հինգ հատ դաս: Պիթոնի ծրագրի կոդի չափը 2 կբ, C++_ինը 25 կբ: Արագագործության տարբերություն գրեթե չեմ զգում: Մի թե տարբերությունը ահռելի չի: Երկուսն էլ ընդհանուր ուղվածության ծրագրավորման լեզու են:
Ու դու ոնց էիր ուզում 2կբ-ի ու 25կբ-ի միջև արագագործության տարբերություն տեսնել? Պրոբլեմը էն ա, որ դու ծրագրավորումը պատկերացնում ես 25կբ-ի, 5 կլասի ու 20 ֆունկցիայի սահմաններում ինչ-որ բան: Բայց դա ծրագիր չի, դա տնային աշխատանք ա կամ առավելագույնը կուրսային աշխատանք: Իրական լուրջ ծրագիրը այն է, որի կոդը հասնում է 2 միլիոն տողի ու ծավալով գերազանցում է 100 մբ-ը ու որը իր մեջ պարունակում է 200 հազարից ավել կլաս: Ու սա միայն մաքուր կոդը` չհաշված լրացուցիչ գրադարանները, որոնք օգտագործվում են ծրագրում: Նման ծրագրի կոմպիլացիան տևում է մինիմում 1 ժամ: Հիմա, դու ոնց ես պատկերացնում նման ծրագրի իրականացումը որևէ ինտերպրետատորով? Ենթադրենք ինչ-որ հրաշքով դու կարողացար գրել նման մի բան: Ենթադրենք կլասներ չօգտագործեցիր ու պիթոնի ֆունկցիաներով այնուամենայնիվ գրեցիր: Նախ, ես համոզված եմ, որ կոդ գրելու ես ոչ պակաս, քան սիպիպիով, հետո քո օգտագործած ժամանակը մինիմում կրկնակի ավել ա լինելու, քան եթե գրեիր սիպիպիով և երրորդը քո գրածը ստարտ կլինի շատ դանդաղ, քանի որ եթե սիպիպի համապատասխան կոդը կոմպիլացիա է արվում 1 ժամում, ապա քո ինտերպրետատորը էդքան կոդը պետք ա ինտերպրետացիա անի, այսինքն քո ծրագիրը աշխատացնելը կտևի մոտ 1 ժամ, հլա չեմ ասում, որ արդեն ստարտ լինելուց հետո այն կաշխատի չափազանց դանդաղ ու կօգտագործի կրկնակի ավելի հիշողություն: Այսինքն ավելի լավ ա չգրեիր:
Էնպես որ, եթե դու մտադիր ես քո գրած ծրագրերում սահմանափակվել 5 կլասով ու 20 ֆունկցիայով, ապա շատ բարի, ավելի լավ ա օգտագործես պիթոն, բայց եթե ինչ-որ մեկը փորձում ա ավելի ռեալ բան գրի, որը բացի իրենից նաև ուրիշ մեկին օգուտ կտա, ապա մի փորձիր նրան համոզել, թե պիթոնը ավելի լավն ա, որովհետև դա տենց չի ու չի կարող տենց լինել:

_DEATH_
31.08.2009, 12:39
Ու դու ոնց էիր ուզում 2կբ-ի ու 25կբ-ի միջև արագագործության տարբերություն տեսնել? Պրոբլեմը էն ա, որ դու ծրագրավորումը պատկերացնում ես 25կբ-ի, 5 կլասի ու 20 ֆունկցիայի սահմաններում ինչ-որ բան: Բայց դա ծրագիր չի, դա տնային աշխատանք ա կամ առավելագույնը կուրսային աշխատանք: Իրական լուրջ ծրագիրը այն է, որի կոդը հասնում է 2 միլիոն տողի ու ծավալով գերազանցում է 100 մբ-ը ու որը իր մեջ պարունակում է 200 հազարից ավել կլաս: Ու սա միայն մաքուր կոդը` չհաշված լրացուցիչ գրադարանները, որոնք օգտագործվում են ծրագրում: Նման ծրագրի կոմպիլացիան տևում է մինիմում 1 ժամ: Հիմա, դու ոնց ես պատկերացնում նման ծրագրի իրականացումը որևէ ինտերպրետատորով? Ենթադրենք ինչ-որ հրաշքով դու կարողացար գրել նման մի բան: Ենթադրենք կլասներ չօգտագործեցիր ու պիթոնի ֆունկցիաներով այնուամենայնիվ գրեցիր: Նախ, ես համոզված եմ, որ կոդ գրելու ես ոչ պակաս, քան սիպիպիով, հետո քո օգտագործած ժամանակը մինիմում կրկնակի ավել ա լինելու, քան եթե գրեիր սիպիպիով և երրորդը քո գրածը ստարտ կլինի շատ դանդաղ, քանի որ եթե սիպիպի համապատասխան կոդը կոմպիլացիա է արվում 1 ժամում, ապա քո ինտերպրետատորը էդքան կոդը պետք ա ինտերպրետացիա անի, այսինքն քո ծրագիրը աշխատացնելը կտևի մոտ 1 ժամ, հլա չեմ ասում, որ արդեն ստարտ լինելուց հետո այն կաշխատի չափազանց դանդաղ ու կօգտագործի կրկնակի ավելի հիշողություն: Այսինքն ավելի լավ ա չգրեիր:
Էնպես որ, եթե դու մտադիր ես քո գրած ծրագրերում սահմանափակվել 5 կլասով ու 20 ֆունկցիայով, ապա շատ բարի, ավելի լավ ա օգտագործես պիթոն, բայց եթե ինչ-որ մեկը փորձում ա ավելի ռեալ բան գրի, որը բացի իրենից նաև ուրիշ մեկին օգուտ կտա, ապա մի փորձիր նրան համոզել, թե պիթոնը ավելի լավն ա, որովհետև դա տենց չի ու չի կարող տենց լինել:

Հարգելի Արիացի ոչ մի կուրսային աշխատանք էլ չի, լիարժեք ծրագիր ա, թեկուզ պարզ, բայց նույն պարզության ծրագիրը ամերիկացիները 50-100$ են ծախում:
Էտ քո գրած չափերը ֆանտաստիկա են, առանձ գրադարանների 100 մբ նույնիսկ ՕՀ-երի կմախքը էտքան չկա, այլ մի քանի մբ ա: Իսկ ես արդեն քանի անգամ շեշտել եմ, որ խոսքը սովորական շարքային ծրագրի մասին ա: Առանձ գրադարանների դու ինձ գոնե 1 մբ-անոց ծրագրի կոդ ցույց տուր նոր տենց ֆանտաստիկ թվեր ասա: Իսկ ինչ վերաբերում ա քո ֆանտաստիկ պատկերացմանը, ապա ասեմ որ էտ հարցը տվել եմ Իգոր Պավլովին (7-zip-ի հեղինակին): Պատասխանը. էտ բոլոր հարուրավոր մբ-անբոց ծրագրերը հատուկ են ուռացնում նկարներով, երգերով, վիդեոներով,… թե չէ մաքուր ծրագրի կոդը երևի թե ընդամենը մի քանի հարուր կբ ա, մաքսիմում մի քանի մբ…
Քո կարծիքով Photoshop-ի կոդը 100 մբ ա (առանձ գրադարանների)? Եթե տենց ա իմաստ չունի էս թեման շարունակել…
Photoshop-ի վրա քանի հատ ծրագրավորող ա աշխատել? Ես մենակովս կյանքումս էտ չափի ծրագիր չեմ գրի:
Ինտեռպռետատորը չես պատկերացնում ոնց ա աշխատում: Աշխատացնելը ոչ թե մի ժամ կտևի, այլ մի քանի վարկյան, բա դանդաղությունը հենց դրանից ա գալիս, որ ծրագիրի մեկնարկի ժամանակ օրինակ ֆունկցիաները դեռ մշակված չեն, առաջին կիրառման դեպքում են մշակվում, իսկ եթե չի կիրառվել, չի էլ մշակվում: Էլ չեմ ասում սիպիյի դեպքում ոչ դինամիկ ստեղծված օբյեկտները հենց ծրագրի մեկնարկի ժամանակ են ստեղծվում, իսկ Պիթոնի դեպքում լրիվ դինամիկ են ու հիշողության կառավարումը լրիվ ավտոմատ ա: Հիմնականում Պիթոնով շատ են օգտագործվում սիպիպիով գրված մոդուլները, դրա շնորհիվ արագության տարբերություն գրեթե չկա, ժամանակակից կոմպերի վրա հատուկ բենթչերով (bench) տարբերությունը կարելի ա զգալ: Լավ ասենք լրիվ մաքուր Պիթոնի կոդ ա առանձ ոչ մի մոդուլի (չնայած տենց բան) ու լրիվ մաքուր կոդ սիպիպիով, էս դեպքում մոտ 10-20 անգամ դանդաղ կաշխատի Պիթոնի ծրագիրը: բայց Գուգլը շուտով իրավիճակը կփոխի: Պիթոնը գրեթե կոմպիլյատոռ ա դառնում :D
Որոշ բաների մշակման ձևերը փոխել են, լրիվ աբստրակտ պատկերացումները, որ ինտեռպռետատորն ա մշակում, մեքենան ա մշակելու! Ամենաքիչը հինգ անգամ արագացնելու են իրանց խոսքերից: Բայց տենց թվերով չի կարելի ասել իմ կարծիքով, որովհետև օրինակ ցիկլի աշխատանքը եթե արագացնում են, էս դեպքում կապված ա նրանից թե քանի քայլ ունի ցիկլը,…
Վերջում կարող ա նենց արդյուքնի հասնեն, որ Պիթոնը աշխատի մեքենայական կոդից ասենք մի 2-3 անգամ դանդաղ, եթե հաշվի առնենք որ սիպիպիով էլ գրված մոդուլներ են օգտագործվելու հիմնականում, մանավանդ հիմա կոմպերը 90-ականների կոմպերը չեն: Ուրեմն էլ ով կարա արագագործությունը որպես թերություն ընդունի? Եթե ծրագրի գրման պռոցեսը համեստ հաշվարկներով մոտ 5-10 անգամ քիչ ա տևում, իսկ ծրագրի կոդը ոչ պակաս քան սիպիպին? :o Ում ուզում ես հարցրու, ինչքան օրինակ ուզում ես բեր, քանի անգամ ա հաշվարկվել, Պիթոնի կոդը ամենաքիչը 4-5 անգամ քիչ ա լինում: Էլ չեմ ասում նենց դեպքեր ա լինում 20 անգամ:

Արիացի
31.08.2009, 13:04
Հարգելի Արիացի ոչ մի կուրսային աշխատանք էլ չի, լիարժեք ծրագիր ա, թեկուզ պարզ, բայց նույն պարզության ծրագիրը ամերիկացիները 50-100$ են ծախում:
Էտ քո գրած չափերը ֆանտաստիկա են, առանձ գրադարանների 100 մբ նույնիսկ ՕՀ-երի կմախքը էտքան չկա, այլ մի քանի մբ ա: Իսկ ես արդեն քանի անգամ շեշտել եմ, որ խոսքը սովորական շարքային ծրագրի մասին ա: Առանձ գրադարանների դու ինձ գոնե 1 մբ-անոց ծրագրի կոդ ցույց տուր նոր տենց ֆանտաստիկ թվեր ասա: Իսկ ինչ վերաբերում ա քո ֆանտաստիկ պատկերացմանը, ապա ասեմ որ էտ հարցը տվել եմ Իգոր Պավլովին (7-zip-ի հեղինակին): Պատասխանը. էտ բոլոր հարուրավոր մբ-անբոց ծրագրերը հատուկ են ուռացնում նկարներով, երգերով, վիդեոներով,… թե չէ մաքուր ծրագրի կոդը երևի թե ընդամենը մի քանի հարուր կբ ա, մաքսիմում մի քանի մբ…
Քո կարծիքով Photoshop-ի կոդը 100 մբ ա (առանձ գրադարանների)? Եթե տենց ա իմաստ չունի էս թեման շարունակել…
Photoshop-ի վրա քանի հատ ծրագրավորող ա աշխատել? Ես մենակովս կյանքումս էտ չափի ծրագիր չեմ գրի:
Ինտեռպռետատորը չես պատկերացնում ոնց ա աշխատում: Աշխատացնելը ոչ թե մի ժամ կտևի, այլ մի քանի վարկյան, բա դանդաղությունը հենց դրանից ա գալիս, որ ծրագիրի մեկնարկի ժամանակ օրինակ ֆունկցիաները դեռ մշակված չեն, առաջին կիրառման դեպքում են մշակվում, իսկ եթե չի կիրառվել, չի էլ մշակվում: Էլ չեմ ասում սիպիյի դեպքում ոչ դինամիկ ստեղծված օբյեկտները հենց ծրագրի մեկնարկի ժամանակ են ստեղծվում, իսկ Պիթոնի դեպքում լրիվ դինամիկ են ու հիշողության կառավարումը լրիվ ավտոմատ ա: Հիմնականում Պիթոնով շատ են օգտագործվում սիպիպիով գրված մոդուլները, դրա շնորհիվ արագության տարբերություն գրեթե չկա, ժամանակակից կոմպերի վրա հատուկ բենթչերով (bench) տարբերությունը կարելի ա զգալ: Լավ ասենք լրիվ մաքուր Պիթոնի կոդ ա առանձ ոչ մի մոդուլի (չնայած տենց բան) ու լրիվ մաքուր կոդ սիպիպիով, էս դեպքում մոտ 10-20 անգամ դանդաղ կաշխատի Պիթոնի ծրագիրը: բայց Գուգլը շուտով իրավիճակը կփոխի: Պիթոնը գրեթե կոմպիլյատոռ ա դառնում :D
Որոշ բաների մշակման ձևերը փոխել են, լրիվ աբստրակտ պատկերացումները, որ ինտեռպռետատորն ա մշակում, մեքենան ա մշակելու! Ամենաքիչը հինգ անգամ արագացնելու են իրանց խոսքերից: Բայց տենց թվերով չի կարելի ասել իմ կարծիքով, որովհետև օրինակ ցիկլի աշխատանքը եթե արագացնում են, էս դեպքում կապված ա նրանից թե քանի քայլ ունի ցիկլը,…
Վերջում կարող ա նենց արդյուքնի հասնեն, որ Պիթոնը աշխատի մեքենայական կոդից ասենք մի 2-3 անգամ դանդաղ, եթե հաշվի առնենք որ սիպիպիով էլ գրված մոդուլներ են օգտագործվելու հիմնականում, մանավանդ հիմա կոմպերը 90-ականների կոմպերը չեն: Ուրեմն էլ ով կարա արագագործությունը որպես թերություն ընդունի? Եթե ծրագրի գրման պռոցեսը համեստ հաշվարկներով մոտ 5-10 անգամ քիչ ա տևում, իսկ ծրագրի կոդը ոչ պակաս քան սիպիպին? :o Ում ուզում ես հարցրու, ինչքան օրինակ ուզում ես բեր, քանի անգամ ա հաշվարկվել, Պիթոնի կոդը ամենաքիչը 4-5 անգամ քիչ ա լինում: Էլ չեմ ասում նենց դեպքեր ա լինում 20 անգամ:

Ցանկացած նորմալ որակի կուրսային աշխատանք էլ կարող ես 50-100 դոլլարով ծախել, նենց որ քո ասածը հենց կուրսային աշխատանքի կարգի մի բան ա: ;)
Իսկ էն, որ իմ բերած թվերը քեզ ֆանտաստիկա են թվում, դա բնական ա, քանի որ դու դեռ փորձում ես 25 կբ-ի ու 2 կբ-ի ծրագրերի միջև արագագործության տարբերություն զգալ անզեն աչքով: Բայց չգիտեի, որ 7-zip գրողներն էլ են նման մակարդակի վրա գտնվում :D : Ինչևէ, սեփական փորձից կարող եմ քեզ ասել, որ նման ծրագրեր շատ կան ու մարդիկ աշխատում են նման ծրագրերի վրա և ոչ մի ֆանտաստիկ բան չեն տեսնում դրա մեջ: Քո համար միգուցե Իգորպավլովն ա հեղինակություն ու եթե ինքը տենց ա ասում ուրեմն քո համար տենց ա, բայց ինձ համար իմ պրակտիկան հերիք է, որ նման թվերին շատ նորմալ վերաբերվեմ: Բայց քանի որ դու մտածում ես, որ 100 մբանոց կոդ ունեցող ծրագիր գրելը ֆանտաստիկա է, ապա էս զրույցը շարունակել իմաստ չունի, քանի որ ես էլ քո հետ համաձայն եմ, որ կուրսային աշխատանքը ավելի հարմար է գրել պիթոնով, քան սիպիպիով, քանի որ նման փոքր ծրագրերի համար պիթոնով գրելը կարճ է ու արագության տարբերությունն էլ աննկատ է: Բայց երբ որ քո համար արդեն ֆանտաստիկա չի լինի 1 մբ-ից ավել կոդ ունեցող ծրագիրը, էն ժամանակ էլ կքննարկենք, թե որն է ավելի հարմար նման դեպքում` սիպիպին, թե պիթոնը?

_DEATH_
31.08.2009, 13:14
Ցանկացած նորմալ որակի կուրսային աշխատանք էլ կարող ես 50-100 դոլլարով ծախել, նենց որ քո ասածը հենց կուրսային աշխատանքի կարգի մի բան ա: ;)
Իսկ էն, որ իմ բերած թվերը քեզ ֆանտաստիկա են թվում, դա բնական ա, քանի որ դու դեռ փորձում ես 25 կբ-ի ու 2 կբ-ի ծրագրերի միջև արագագործության տարբերություն զգալ անզեն աչքով: Բայց չգիտեի, որ 7-zip գրողներն էլ են նման մակարդակի վրա գտնվում :D : Ինչևէ, սեփական փորձից կարող եմ քեզ ասել, որ նման ծրագրեր շատ կան ու մարդիկ աշխատում են նման ծրագրերի վրա և ոչ մի ֆանտաստիկ բան չեն տեսնում դրա մեջ: Քո համար միգուցե Իգորպավլովն ա հեղինակություն ու եթե ինքը տենց ա ասում ուրեմն քո համար տենց ա, բայց ինձ համար իմ պրակտիկան հերիք է, որ նման թվերին շատ նորմալ վերաբերվեմ: Բայց քանի որ դու մտածում ես, որ 100 մբանոց կոդ ունեցող ծրագիր գրելը ֆանտաստիկա է, ապա էս զրույցը շարունակել իմաստ չունի, քանի որ ես էլ քո հետ համաձայն եմ, որ կուրսային աշխատանքը ավելի հարմար է գրել պիթոնով, քան սիպիպիով, քանի որ նման փոքր ծրագրերի համար պիթոնով գրելը կարճ է ու արագության տարբերությունն էլ աննկատ է: Բայց երբ որ քո համար արդեն ֆանտաստիկա չի լինի 1 մբ-ից ավել կոդ ունեցող ծրագիրը, էն ժամանակ էլ կքննարկենք, թե որն է ավելի հարմար նման դեպքում` սիպիպին, թե պիթոնը?

Դու հլը 7-zip-ի ալգորիթմի նման ալգորիթմ գրի, նոր խոսա: Ընդամենը մի քանի կբ-անոց սեղման ալգորիթմը էնքան հանճարեղ ա, էնքան գործ ա անում, էնքան տրամաբանություն մեջ կա, էնքան շատ ա կիրառվում, որ ամբողջ աշխարհը օգտագործում ա: իսկ էտ քո մարսեցիների գրած ծրագրերը 100 մբ կոդով ոչ մեկ Երկիր մոլորակի վրա չի օգտագործում: Եթե քո խոսքերով նման ծրագրեր շատ կան, ուրեմն գոնե մեկի անունը ասա: Մինչև հիմա տենց բան ինձ չի հանդիպել, շատ հետաքրքիր կլինի տենց բան տեսնելը: Խոսքը վերաբերում է կոնկրետ մեկ ծրագրի: Ծրագրերի կոմպլեկտ չասես, ասենք Լինուքսի դիստրիբուտիվ հազար ծրագրի փաթեթով, որը մի քանի օրում ա կոմպիլացիա լինում :D

Արիացի
31.08.2009, 22:20
Դու հլը 7-zip-ի ալգորիթմի նման ալգորիթմ գրի, նոր խոսա: Ընդամենը մի քանի կբ-անոց սեղման ալգորիթմը էնքան հանճարեղ ա, էնքան գործ ա անում, էնքան տրամաբանություն մեջ կա, էնքան շատ ա կիրառվում, որ ամբողջ աշխարհը օգտագործում ա: իսկ էտ քո մարսեցիների գրած ծրագրերը 100 մբ կոդով ոչ մեկ Երկիր մոլորակի վրա չի օգտագործում: Եթե քո խոսքերով նման ծրագրեր շատ կան, ուրեմն գոնե մեկի անունը ասա: Մինչև հիմա տենց բան ինձ չի հանդիպել, շատ հետաքրքիր կլինի տենց բան տեսնելը: Խոսքը վերաբերում է կոնկրետ մեկ ծրագրի: Ծրագրերի կոմպլեկտ չասես, ասենք Լինուքսի դիստրիբուտիվ հազար ծրագրի փաթեթով, որը մի քանի օրում ա կոմպիլացիա լինում :D

Ալգորիթմ իմանալը դեռ չի նշանակում լավ ծրագրավորող լինել: Ես մարդ գիտեմ, որ լավ ալգորիթմներ ա գրում ու միջազգային ճանաչում ունի, բայց չգիտի նույնիսկ, թե կլասը ինչ ա: Նենց որ, եթե քեզ հետաքրքրում են իմ ալգորիթմիկ ընդունակությունները, մաթեմատիկայի բաժնում առաջարկի քննարկենք:
Ինչ վերաբերվում է, քո համար ֆանտաստիկ ծրագրերին, ասեմ, որ երբ մարդը ինքնաթիռ տեսած չի լինում, դա իր համար ֆանտաստիկա է լինում: Ես հիմա աշխատում եմ նման ծրագրի վրա: Կոդի չափը հիմիկվա դրությամբ 189 մբ է ու անընդհատ աճում է: Դա մի ծրագիր է, մի main ֆունկցիայով, ոչ թե դիստրիբուտիվ: Ու դրա համար, մի փորձիր նման վստահությամբ ասել, թե տենց բան չկա, կարող ա սխալվես ու ծիծաղելի դրության մեջ հայտնվես:
Ինչևէ, հուսով եմ քո պիթոնով կարիք չես ունենա team programming-ով զբաղվել, մանավանդ, երբ team-ը 200 հոգուց ավել է: Կհայտնվես տխուր իրավիճակում:
Հուսով եմ մի օր կդառնաս լուրջ ծրագրավորող, մանավանդ, որ դրա պոտենցիալը ունես: :)

_DEATH_
31.08.2009, 22:47
Ալգորիթմ իմանալը դեռ չի նշանակում լավ ծրագրավորող լինել: Ես մարդ գիտեմ, որ լավ ալգորիթմներ ա գրում ու միջազգային ճանաչում ունի, բայց չգիտի նույնիսկ, թե կլասը ինչ ա: Նենց որ, եթե քեզ հետաքրքրում են իմ ալգորիթմիկ ընդունակությունները, մաթեմատիկայի բաժնում առաջարկի քննարկենք:
Ինչ վերաբերվում է, քո համար ֆանտաստիկ ծրագրերին, ասեմ, որ երբ մարդը ինքնաթիռ տեսած չի լինում, դա իր համար ֆանտաստիկա է լինում: Ես հիմա աշխատում եմ նման ծրագրի վրա: Կոդի չափը հիմիկվա դրությամբ 189 մբ է ու անընդհատ աճում է: Դա մի ծրագիր է, մի main ֆունկցիայով, ոչ թե դիստրիբուտիվ: Ու դրա համար, մի փորձիր նման վստահությամբ ասել, թե տենց բան չկա, կարող ա սխալվես ու ծիծաղելի դրության մեջ հայտնվես:
Ինչևէ, հուսով եմ քո պիթոնով կարիք չես ունենա team programming-ով զբաղվել, մանավանդ, երբ team-ը 200 հոգուց ավել է: Կհայտնվես տխուր իրավիճակում:
Հուսով եմ մի օր կդառնաս լուրջ ծրագրավորող, մանավանդ, որ դրա պոտենցիալը ունես: :)

Ուղակի կյանքումս տենց բան չի հանդիպել :think Էտ լուրջ մենակ ծրագրի կոդն ա? առանձ գրադարանների, ռեսուրսների, օբյեկտային ֆայլերի, … Չեմ պատկերացնում էտ ծավալով ինչ պետք ա լինի, բա կոմպիլացիայից հետո ինչ չափի ա դառնում? :D

Արամ
31.08.2009, 23:16
սաղ գրառումները կարդացի կարդացի, ասիմ հեսա արս83 կգրի....կասի Ս++ ովա...են էլ...

Chelovek84
12.02.2012, 23:53
Հարգելիներս, պետք չէ սրանով (http://lurkmore.to/%D0%A5%D0%BE%D0%BB%D0%B8%D0%B2%D0%B0%D1%80) զբաղվել։ Ամեն լեզու ունի իր նշանակությունը։ C++-ը ավելի ճիշտ կլինի համեմատել Delphi-ի հետ, Python-ը Ruby-ի հետ, Java-ն C#-ի հետ, PHP-ին ASP-ի հետ և այլն։ Լրիվ տարբեր նշանակության լեզուները պետք չէ համեմատել իրար հետ։

Ddr5
22.04.2013, 19:05
Ժողովուրդ ջան միհատ Python-ի լավ գիրք ասեք սովորեմ էլի :8

Ruby Rue
11.09.2013, 06:22
Ժողովուրդ ջան միհատ Python-ի լավ գիրք ասեք սովորեմ էլի :8

Եթե անգլերեն գիտես, մեյլդ ասա, քեզ մի գիրք կուղարկեմ: Ես հիմա դրանով եմ անցնում, ԱՄՆ-ի համալսարաններից մեկում: Բավականին մատչելի ու հասկանալի է գրված, հեշտությամբ կսովորես, եթե անգլերենի հետ խնդիրներ չունես:

Արամ
11.09.2013, 06:56
Եթե անգլերեն գիտես, մեյլդ ասա, քեզ մի գիրք կուղարկեմ: Ես հիմա դրանով եմ անցնում, ԱՄՆ-ի համալսարաններից մեկում: Բավականին մատչելի ու հասկանալի է գրված, հեշտությամբ կսովորես, եթե անգլերենի հետ խնդիրներ չունես:

Phyton ե՞ք սովորում: :o

Ruby Rue
11.09.2013, 07:58
Phyton ե՞ք սովորում: :o

Սկզբում ես էլ էի զարմացել, որ Python ա. ախր նույնիսկ անունը չէի լսել: :oy