mboost-dp1

Python trækker fra konkurrenterne


Gå til bund
Gravatar #2 - CBM
11. jul. 2019 14:18
Jeg ville godt nok foretrække C++ eller Perl alt efter min usecase, frem for Python hvis jeg skulle vælge mellem de 3

Gravatar #3 - Claus Jørgensen
11. jul. 2019 18:53
#2

Hvorfor? Hvad laver du i C++/Perl, som du ikke kan lave i Python? (Specielt da Perl jo er kendt som et write-only sprog)
Gravatar #4 - Claus Jørgensen
11. jul. 2019 18:56
#perl

Jeg tror det er ret svaert at hyre folk til perl nu om dage. Det giver fint mening at Python er det mere populaere sprog, specielt da det allerede var svaert populart paa universiteterne for 10 aar siden.
Gravatar #5 - arne_v
11. jul. 2019 22:01
#2

Jeg tror at det er meget sjældent at C++ og Python er alternativer til en given løsning.

Python og R er alternativer i scientific - big data computing.

Python, Perl og Groovy er alternativer til scripting fra web til sysadm.

C++ er vist også kun nævnt i artiklen fordi Python overtog dets placering.
Gravatar #6 - arne_v
11. jul. 2019 22:05
#4

Ja.

Enhver Unix sysadm med respekt for sig selv tilbage i 90'erne var en Perl haj.

Men idag må der være langt mellem ekspertisen.

Imidlertid efterspørgse Perl stadig meget i job-opslag!

Gravatar #7 - CBM
12. jul. 2019 03:08
Claus Jørgensen (3) skrev:
#2

Hvorfor? Hvad laver du i C++/Perl, som du ikke kan lave i Python? (Specielt da Perl jo er kendt som et write-only sprog)


Der er vel ikke noget som der ikke kunne laves i Python hvis man virkelig ville. Jeg foretrækker bare C++ og Perl hhv ifm software udvikling og scripts frem for Python

Dog vil jeg allerhelst bruge Pascal til software udvikling, php til serverside webudvikling og Perl til scripts, fx ifm cvsnt

arne_v (5) skrev:
#2

Jeg tror at det er meget sjældent at C++ og Python er alternativer til en given løsning.

Python og R er alternativer i scientific - big data computing.

Python, Perl og Groovy er alternativer til scripting fra web til sysadm.

C++ er vist også kun nævnt i artiklen fordi Python overtog dets placering.


Jep

arne_v (6) skrev:
#4

Ja.

Enhver Unix sysadm med respekt for sig selv tilbage i 90'erne var en Perl haj.

Men idag må der være langt mellem ekspertisen.

Imidlertid efterspørgse Perl stadig meget i job-opslag!



Jeg har ikke brugt Perl i snart 10 år nu men jeg kunne sikkert hurtigt komme tilbage til det :)

Gravatar #8 - larsp
12. jul. 2019 07:29
Overrasker mig ikke. Python er et godt sprog til højniveau scripting og application logic. Det er lavet til at være letforståeligt og nemt for nye udviklere at komme up-to-speed. Det giver fordele i rekruttering og maintenance.

Men prøv at lave en løkke i python der behandler data én sample af gangen, f.eks. signalbehandling, så finder man hurtig ud af at python er et scripting sprog og ikke til high performance.

C/C++ kan udnytte alle cpu cycles optimalt hvis man koder det ordenligt. Derfor er de fleste operativsystemer skrevet i C/C++. Men det kræver noget mere af programmøren at lave robust og god kode, dvs. higher cost at udvikle. Forskellige sprog til forskellige formål.

Perl.... så længe man ikke laver gnidrede scripts der ligner tilfældige karakterer.. er det sikkert fint. Men jeg ved at perl nørderne ikke kan lade være at flexe deres skills og så sidder man og skal vedligeholde fuldstændig uforståelig kode.
Gravatar #9 - PHP-Ekspert Thoroughbreed
12. jul. 2019 07:35
#7

Jeg bruger TURBO Pascal ;)
Gravatar #10 - CBM
12. jul. 2019 08:25
PHP-Ekspert Thoroughbreed (9) skrev:
#7

Jeg bruger TURBO Pascal ;)

rocking it old skool... respekt! :o)
Gravatar #11 - PHP-Ekspert Thoroughbreed
12. jul. 2019 10:03
#10

Min PC har også en TURBO knap ;)
Gravatar #12 - CBM
12. jul. 2019 10:50
PHP-Ekspert Thoroughbreed (11) skrev:
#10

Min PC har også en TURBO knap ;)

Bruger du så den når du koder i TURBO Pascal? :)
Gravatar #13 - arne_v
12. jul. 2019 23:01
#9 og #10

Jeg har faktisk TP55 installeret og kan køre den via DosBox (den kan ikke køre direkte i Windows 64 bit=.
Gravatar #14 - CBM
13. jul. 2019 03:19
#13: hvor tit får du så brugt det? :-)
Gravatar #15 - arne_v
13. jul. 2019 17:46
#14

Reelt set aldrig.

Men jeg har en Delphi 7 og en Lazarus 1.8 som jeg bruger en gang imellem.
Gravatar #16 - CBM
13. jul. 2019 17:57
arne_v (15) skrev:
#14

Reelt set aldrig.

Men jeg har en Delphi 7 og en Lazarus 1.8 som jeg bruger en gang imellem.

Ok :)

Kan huske at jeg brugte det meget dengang jeg kørte dos 6.22 og windows 3.11

Dog helt i starten var det dos med Ega grafik

Jeg havde også cga kort men jeg startede med en Ega maskine

Gravatar #17 - arne_v
13. jul. 2019 23:20
#16

Jeg har også brugt DOS 6.22 og Windows 3.1.

Men dengang brugte jeg mest VMS Pascal, hvis jeg ville lave noget i Pascal.

Gravatar #18 - CBM
14. jul. 2019 04:07
#17:

Okay

Spændende, var det ifm software udvikling til OpenVMS?

Angående Windows 3.11

Det er spøjst at det først var i start 90erne at version 3.11 kom på markedet

https://www.operating-system.org/betriebssystem/_e...

Gravatar #19 - CBM
14. jul. 2019 04:42
Gravatar #20 - arne_v
14. jul. 2019 15:00
CBM (18) skrev:

Spændende, var det ifm software udvikling til OpenVMS?


Lidt undervisning og lidt udvikling.

CBM (18) skrev:

Angående Windows 3.11

Det er spøjst at det først var i start 90erne at version 3.11 kom på markedet


Det var nok et spørgsmål om markedet.

PC og DOS var til dem som ville nørkle med tingene.

Dem der ville have noget nemt købte Lisa, Macintosh, Amiga, Atari etc..
Gravatar #21 - arne_v
14. jul. 2019 15:14
#19

VMS Pascal var ret avanceret den gang.

Traditionel Pascal syntax (fuld ISO Pascal plus noget af ISO Extended Pascal) uden object orienteret syntax (Apple/Borland Object-Pascal) - altså ca. det samme som TP før version 5.5.

Og en del udvidelser:
* et module koncept som gør det samme som Delphi units (men med helt anderledes syntax)
* komplet interface til all OS funktioner (men altså kun karakterbaseret UI!)
* super nice support for ISAM filer (NoSQL database i moderne terminologi)
* embedded SQL Pascal pre-compiler for RDB database adgang

Gravatar #22 - arne_v
15. jul. 2019 02:57
#21

Jeg er lidt rusten, men jeg kan stadig.

Det her virker:


program isam(input,output);

const
ACTION_ADD = 1;
ACTION_LIST_BY_ID = 2;
ACTION_LIST_BY_NAME = 3;
ACTION_FIND_BY_ID = 4;
ACTION_FIND_BY_NAME = 5;
ACTION_EXIT = 6;

const
MAX_FIXSTRING_LEN = 16;
MAX_VARSTRING_LEN = 255;

type
fixstring = packed array [1..MAX_FIXSTRING_LEN] of char;
varstring = varying [MAX_VARSTRING_LEN] of char;
person = record
id : [key(0)] integer;
name : [key(1)] fixstring;
address : varstring;
end;
database = file of person;

var
db : database;

procedure add;

var
id : integer;
name : fixstring;
address : varstring;

begin
write('Enter id: ');
readln(id);
write('Enter name: ');
readln(name);
write('Enter address: ');
readln(address);
db^.id := id;
db^.name := name;
db^.address := address;
put(db);
end;

procedure dump(p : person);

begin
with p do begin
writeln(' id = ', id:1);
writeln(' name = ', name);
writeln(' address = ', address);
end;
end;

procedure list_by_id;

var
p : person;

begin
writeln('List by id:');
resetk(db, 0);
while not eof(db) do begin
read(db, p);
dump(p);
end;
end;

procedure list_by_name;

var
p : person;

begin
writeln('List by name:');
resetk(db, 1);
while not eof(db) do begin
read(db, p);
dump(p);
end;
end;

procedure find_by_id;

var
id : integer;

begin
write('Enter id: ');
readln(id);
findk(db, 0, id);
if not ufb(db) then begin
dump(db^);
end else begin
writeln('Not found: ', id:1);
end;
end;

procedure find_by_name;

var
name : fixstring;

begin
write('Enter name: ');
readln(name);
findk(db, 1, name);
if not ufb(db) then begin
dump(db^);
end else begin
writeln('Not found: ', name);
end;
end;

procedure exit;

begin
writeln('Exiting');
end;

var
action : integer;

begin
open(db, 'person.isq', new, organization := indexed, access_method := keyed);
repeat
writeln('Menu:');
writeln(ACTION_ADD, ': Add person');
writeln(ACTION_LIST_BY_ID, ': List persons (sort by id)');
writeln(ACTION_LIST_BY_NAME, ': List persons (sort by name)');
writeln(ACTION_FIND_BY_ID, ': Find person by id');
writeln(ACTION_FIND_BY_NAME, ': Find person by name');
writeln(ACTION_EXIT, ': Exit');
write('Enter choice: ');
readln(action);
writeln;
case action of
ACTION_ADD: add;
ACTION_LIST_BY_ID: list_by_id;
ACTION_LIST_BY_NAME: list_by_name;
ACTION_FIND_BY_ID: find_by_id;
ACTION_FIND_BY_NAME: find_by_name;
ACTION_EXIT: exit;
end;
until action = ACTION_EXIT;
close(db);
end.

Gravatar #23 - arne_v
15. jul. 2019 02:58
#22

Og min kode har naturligvis indryk, men newz.dk code tag kan ikke finde ud af det.
Gravatar #24 - CBM
15. jul. 2019 04:49
arne_v (23) skrev:
#22

Og min kode har naturligvis indryk, men newz.dk code tag kan ikke finde ud af det.


Ganske fin konsol program til at holde styr på data.
Gravatar #25 - larsp
15. jul. 2019 08:19
Old Pascal heads ;) begin end begin end, det må da være til at blive skør af at skrive så mange gange

Bliver (eller blev) pascal egentlig kompileret til native code eller eksekveret som en form for bytecode?
Gravatar #26 - arne_v
15. jul. 2019 12:32
#25

begin end eller { } er vel ikke den store forskel (medmindr eman tæller tegn).

Pascal bliver normalt oversat til native kode.

Den original Pascal til CDC NOS blev.

Turbo Pascal, Delhi bliver.

VMS Pascal bliver.

Der er undtagelser.

Den kendte UCSD Pascal oversatte til byte code (var formentligt en af de første som gjorde det).

Component Pascal kan oversættes til JVM eller CLR. Men på trods af navnet er det faktisk Oberon-2 og ikke Pascal.
Gravatar #27 - larsp
16. jul. 2019 08:24
#26 Jeg tvivler ikke på at Pascal faktisk har en fin og logisk syntax, og en god editor vil selvfølgelig kunne hjælpe med Begin End osv.

C er bestemt ikke noget kønt eller specielt godt sprog når det kommer til stykket. Men det vandt kampen ligesom VHS vandt over betamax, og har måske den fordel at det vitterlig kun er et tyndt lag oven på assembler. Der er ikke nogen automagi mht. strenge og array boundary checking, så det er godt til hardcore lowlevel kode. Mindre godt til high level application logic.

Hvordan håndterer Pascal memory allokering og streng operationer? Objekter? Garbage collector? Er der runtime array bounds checking?
Gravatar #28 - arne_v
16. jul. 2019 12:53
larsp (27) skrev:

C er bestemt ikke noget kønt eller specielt godt sprog når det kommer til stykket. Men det vandt kampen ligesom VHS vandt over betamax, og har måske den fordel at det vitterlig kun er et tyndt lag oven på assembler. Der er ikke nogen automagi mht. strenge og array boundary checking, så det er godt til hardcore lowlevel kode. Mindre godt til high level application logic.


C-familie syntax aka { } vandt over Pascal-familie syntax aka begin end.

C vandt ikke over Pascal - de er til forskellige markeder.

C++, VB og C# vandt over Pascal.

larsp (27) skrev:

Hvordan håndterer Pascal memory allokering og streng operationer? Objekter? Garbage collector? Er der runtime array bounds checking?


Standard Pascal pointere og Object Pascal objekter er meget ligesom referancer i Java og C#. Dynamisk allokeret men man kan ikke lave noget snavs med dem.

Streng type og streng funktioner som man forventer i et HLL.

Runtime check på array index. Normalt.

Manuel deallokering (ikke garbage collection).

Og mulighed for null (kaldet nil) pointere.

[og i Delphi har man mulighed for at omgå stort set alle de sikre features i Pascal]
Gravatar #29 - larsp
16. jul. 2019 14:54
arne_v (28) skrev:
C-familie syntax aka { } vandt over Pascal-familie syntax aka begin end.

C vandt ikke over Pascal - de er til forskellige markeder.

C++, VB og C# vandt over Pascal.

Jeg kan godt følge dig. Pascal kunne have været et alternativ til C++, men nok ikke til C. Og med C og C++s popularitet fulgte alle de andre curly bracket sprog og Pascal blev the odd man out.

Og ja, der var en rigtig fight mellem Delphi og VB om at være det brugervenlige højniveau sprog til at skovle dejlige Windows apps sammen med gule vinduer og kæmpemæssige cyan farvede knapper ;) Ja, jeg har selv været der, var ret ferm til VB6 og brugte det både til hobby og professionelt. Ind imellem prøvede jeg kræfter med Delphi (og også Borland C Builder) men kunne ikke rigtig blive venner med IDE'en. Borland var aldrig en favorit hos mig, det hele virkede bare uintuitivt og mærkeligt.
Gravatar #30 - arne_v
16. jul. 2019 15:11
#29

Jeg har aldrig lavet den slags i hverken VB6 eller Delphi, men jeg kender naturligvis sådanne VB6 og Delphi GUI's - en del af dem er stadig i brug rundt omkring.

Jeg har arbejdet lidt med en mindre kendt konkurrent til dem: JAM (idag Panther).

Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login