Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Your Favourite Programming Language

[es] :: Art of Programming :: Your Favourite Programming Language

Strane: < .. 1 2 3 4

[ Pregleda: 7900 | Odgovora: 70 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
..1e1:dd00:757a:ffd5:3271:f1d2



+7173 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 07:05 - pre 30 meseci
Mi pricamo o potpuno razlicitim stvarima.

Ti objasnjavas optimizacione mogucnosti C++ kompajlera dok ja objasnjavam probleme koji C++ cine neoptimalnim u sistemskom programiranju.

Te stvari nemaju veze jedna sa drugom osim nekih dodirnih tacaka.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
2a02:8071:31e1:dd00:5560:62d..



+7173 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 09:47 - pre 30 meseci
To naravno mozes, ali sumnjam da neko dovodi u pitanje mogucnosti C++ kompajlera.

C++ ima kletvu da bi bio najbolji programski jezik, samo kada bi se resio legacy djubreta - problem je sto je to nemoguce + sto svakom neki deo legacy djubreta znaci puno.

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 10:00 - pre 30 meseci
Đubre nisu legacy C++ komponente/biblioteke/alati, nego prethodne verzije jezika C++, a pre toga i C sa kojim je trebalo održati kompatibilnost unazad. C je super sam za sebe, ali je C++ preko kompatibilnosti s njim nasledio koncepte koji nisu objektno orjentisani.

Rezultat je navedena nekoherentnost, koju ne treba zvati legacy đubretom, već balastom kompatibilnosti.

Legacy čine razne moćne biblioteke i alati, kakvi ponekad ne postoje za druge jezike. Po tome je izuzetno moćan.

Kome se ne sviđa takav nekoherentan C++, a može bez moćnog legacy-ja, ima D na raspolaganju.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
2a02:8071:31e1:dd00:5560:62d..



+7173 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 10:35 - pre 30 meseci
Legacy djubre ili balast kompatibilnosti - svejedno, mislimo na mahom iste stvari (veliko preklapanje).

Ali nije samo nekoherentnost problem - evo samo jedan: Linus ga je pomenuo: sa C++ nikad nisi siguran sta se desava kad uradis neku npr. aritmeticku operaciju, zato sto je mozda operator overload-ovan i bog te pita sta se desava ispod haube.

U vecini slucajeva u userspace-u je ovo dobra stvar, kod je jasniji, manji, laksi za odrzavanje - ali u sistemskom domenu ovo moze biti gadna stvar.

Sto se D-a tice, rekao bih da je trenutno trend vise migracija ka Rust-u - mada sa tim stvarima se nikad ne zna kako ce izgledati u sledecih N godina.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 12:26 - pre 30 meseci
Pa, u OO jezicima (u koje C ne spada) je poenta u tome da kada pozoveš neku metodu, da se poizdešava sve šta treba za to i da programiranje na taj način bude lakše.

D je nastao kao "ono što je C++ bez balasta kompatibilnosti trebao da bude", a ne kao inovativan jezik.

Rust je nastao kao inovativan jezik orjentisan prema "zero cost solutions".
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language12.10.2021. u 14:27 - pre 30 meseci
Inače, tačno je da C program radi ono što je programer napisao, dok u jezicima višeg nivoa program radi svašta drugo što programer nije napisao, da bi bilo moguće ono što je programer napisao i da se preklapanjem operatora proizvodi efekat koji je Ivan naveo. Da li je taj efekat problem, zavisi od konteksta.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Texas Instruments

Član broj: 227540
Poruke: 272
*.dynamic.sbb.rs.



+61 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 12:23 - pre 30 meseci
Neko pominjao templejte. :)

https://pbs.twimg.com/media/FB...md6R?format=png&name=large
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 12:56 - pre 30 meseci
Ne samo da postoji taj problem, nego njihovo korišćenje usporava C++ programe.

Ako se napravi kršten template, onda nema pada performansi, ali su bibliotečki sve samo ne to. Budženi za preširoku klasu slučajeva, pa dok se uđe da se proveri ovo o ono, odoše ciklusi.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Whitewater
dummy workshop

Član broj: 339178
Poruke: 397



+138 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 16:54 - pre 30 meseci
Citat:
HasoMuka:
U kapitalizmu kad tako nešto lupiš dobiješ otkaz na licu mesta, bez otkaznog roka, bez prava žalbe, bez otpremnine, samo kupiš prnje.
Ako klijent traži štampu na matrični štampač onda se ne raspravljaš nego to tako mora. Period!



ali u kapitalizmu je dobro sto on stalno propada i stalno se dize. Propao je do sada veec 20 puta i ljudi dobiju nekoliko puta otkaz ili im propadne firma i obet nadju drugi posao. Komunizam propao jednom zauvek i ljudi ostali u vecnoj komi: buhuuu 20 godina place kako mu je trnzicija unistila voljenu fabriku a mogao je 20 puta pokrenuti biznis.

ELEM...

ne znam koji mi je jezik najomiljeniji, ali mi je java totalno odvratna. Skarabudzotina samo takva. Osim sto ni HelloWorld nemozes napisati kako treba ima jos i taj JVM nterpreter me nervira.

I saw a USO last night.
 
Odgovor na temu

Whitewater
dummy workshop

Član broj: 339178
Poruke: 397



+138 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 16:59 - pre 30 meseci
Citat:
HasoMuka:
Ako neko nešto ne zna da uradi onda jednostavno tako i kaže.
Nema nasilničkog ponašanja i bacanja opreme klijenta.
U Americi se i za manje gluposti dobija otkaz.


u Americi uvek fali radnika i otkaz se uglavnom daje. Za vecinu poslova dovoljno je da znas basic Inglis i da dises.

Otkaz dobija uglavnom menadzment kad mu income statment ne bude dobar LALALALA



I saw a USO last night.
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1181



+836 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 19:18 - pre 30 meseci
Citat:
Nedeljko: Ne samo da postoji taj problem, nego njihovo korišćenje usporava C++ programe.

Ako se napravi kršten template, onda nema pada performansi, ali su bibliotečki sve samo ne to. Budženi za preširoku klasu slučajeva, pa dok se uđe da se proveri ovo o ono, odoše ciklusi

Da, ali ovde na forumu i na mnogo mesta imas situaciju da ljudi forsiraju npr. inline funkcije da bi dobili malo na brzini.
E' sad nisam "fluent" u c++, ako se dobro secam u toj situaciji parametri f-ije ce zavrsiti u main bloku umesto na stack-u i zar to nije rizicno za vece i kompleksnije funkcije sa "masnim" varijablama. U ostalom da je to ok, onda bi kompajler sve smestao u main blok.

Hocu da kazem da redosled ciljeva (uz naravno izuzetke) nije brzina na prvom mestu, vec robusnost, re-usability, citljivost pa onda brzina.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 19:29 - pre 30 meseci
Ne, nije rizično nizakakve varijable. Međutim,


1. inline funkcija se implementira u zaglavlju, a ne u c/cpp fajlovima, što je nepodesno za pravljenje zatvorenih biblioteka, mada postoje rešenja za to.

2. Kada bi se sve pravilo kao inline, opteretila bi se zaglavlja u pogledu čitljivosti.

3. Dobi su beznačajni, osim za kratke, jednostavne funkcije.

4. exe će onda biti veći zbog redundanse u binarnom kodu.


Naravno, exe ne zna šta je to main. On zna samo za JMP, CALL, MOVE i slično. Niko te ne sprečava da sve implementiraš u main funkciji, ali je vrlo nepraktično, osim za vrlo male programe.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1181



+836 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 20:27 - pre 30 meseci
@Nedeljko
Da probam zarad teme:

Pod 1) i 2):
Ne znam da li je to profi praksa ili code standard da ide u h fajl, ali inline f-iju mozes da implementiras i u cpp fajlu.

Poda 3) i 4):
Da to mi je jasno.

Mene zanima sta se tacno desava u memoriji. Ono imamo code block, stack i heap(koji ovde nije tema).
U code block-u imamo main f-iju, a inline f-ija se inseruje u main putem kompajlera onoliko puta koliko ima poziva te inline f-je(ako razumem)

Eh sada ne znam da li se varijable tih inline f-ija smestaju kao globalne u kod bloku ili idu na stack kao segment main f-ije ili kao kod obicnih f-ija idu na stack kao normalna f-ija..
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
31.223.145.*



+62 Profil

icon Re: Your Favourite Programming Language13.10.2021. u 20:27 - pre 30 meseci
Citat:
Whitewater:
Citat:
HasoMuka:
U kapitalizmu kad tako nešto lupiš dobiješ otkaz na licu mesta, bez otkaznog roka, bez prava žalbe, bez otpremnine, samo kupiš prnje.
Ako klijent traži štampu na matrični štampač onda se ne raspravljaš nego to tako mora. Period!



ali u kapitalizmu je dobro sto on stalno propada i stalno se dize. Propao je do sada veec 20 puta i ljudi dobiju nekoliko puta otkaz ili im propadne firma i obet nadju drugi posao. Komunizam propao jednom zauvek i ljudi ostali u vecnoj komi: buhuuu 20 godina place kako mu je trnzicija unistila voljenu fabriku a mogao je 20 puta pokrenuti biznis.

ELEM...

ne znam koji mi je jezik najomiljeniji, ali mi je java totalno odvratna. Skarabudzotina samo takva. Osim sto ni HelloWorld nemozes napisati kako treba ima jos i taj JVM nterpreter me nervira.



Kad smo vec u debeloj digresiji, secam se da sam davno citao u nekoj analizi americke ekonomije o nekakvom 'bankrot index-u' (ovo sklepao po secanju).
Otprilke, radi se o procentu novoosnovanih firmi koje bankrotiraju u prvoj godini, i valjda bese i u trecoj godini.
Navodno, visok 'bankrot index' je koristan, jer pokazuje da se resursi (kapital i ljudi) obrcu, odnosno nisu zarobljeni u neperspektivnim firmama i/ili projektima.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: Your Favourite Programming Language14.10.2021. u 10:26 - pre 30 meseci
Citat:
dejanet: @Nedeljko
Da probam zarad teme:

Pod 1) i 2):
Ne znam da li je to profi praksa ili code standard da ide u h fajl, ali inline f-iju mozes da implementiras i u cpp fajlu.

Onda neće biti vidljiva van tog cpp fajla.

Ne može prototip u h fajl, implementacija u cpp fajl, pa da se zaglavlje uključi u cpp fajlove u kojima treba, a da linker to posle poveže. U slučaju da nije inline, takvo razdvajanje je moguće. U C-u se umesto inline piše static. C++ isto dozvoljava da se za globalne funkcije piše static kao sinonim za inline.

[Ovu poruku je menjao Nedeljko dana 14.10.2021. u 12:17 GMT+1]
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.isp.telekom.rs.



+2789 Profil

icon Re: Your Favourite Programming Language14.10.2021. u 11:30 - pre 30 meseci
Fajl lib.h
Code (c):

#ifndef LIB_H
#define LIB_H

int s(int n);

#endif


Fajl lib.cpp
Code (c):

#include "lib.h"

int s(int n)
{
    return ++n;
}


Fajl a.cpp
Code (c):

#include "lib.h"

static int m = s(5);


Fajl b.cpp
Code (c):

#include "lib.h"

static int m = s(7);


U slučaju da je funkcija s(int) inline, fajla lib.cpp nema, a fajl lib.h glasi ovako:
Code (c):

#ifndef LIB_H
#define LIB_H

static int s(int n)
{
    return ++n;
}

#endif

Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mediaworksit.net.



+2789 Profil

icon Re: Your Favourite Programming Language15.10.2021. u 18:01 - pre 30 meseci
C ekvivalent bi bio
Code (c):

#include <stdio.h>

#define S(X) ((X)+1)

int main ()
{
    printf("%d\n", S((int) 1));
    printf("%f\n", S((double) 1));

    return 0;
}
 


ili

Code (c):

#include <stdio.h>

#define DEF_S(T) T S ## T(T n) { return ++n; }

DEF_S(int)
DEF_S(double)

#define S(T, X) (S ## T(X))

int main ()
{
    printf("%d\n", S(int, 1));
    printf("%f\n", S(double, 1));

    return 0;
}
 


C++ rešenje je lepše i napisao ga je HasoMuka

Code (cpp):

#include <iostream>

using namespace std;

template<typename T>
S(T n)
{
    return ++n;
}

int main ()
{
    cout << S(static_cast<int>(1)) << endl;
    cout << S(static_cast<double>(1)) << endl;

    return 0;
}
 


Međutim, tu se stiže do problema o kojem je Linus govorio - na kraju ne znaš šta se zapravo poziva. Jeste to jednoznačno, ali ne mora uvek biti očigledno.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: Art of Programming :: Your Favourite Programming Language

Strane: < .. 1 2 3 4

[ Pregleda: 7900 | Odgovora: 70 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.