reklama

Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: [1] 2 3 ... 77
1
Vývoj / Re:Za jak dlouho se naučím C++?
« kdy: 17. 06. 2019, 22:19:24 »
GO bych videl vic jak C potomka s vlivem dalsich jazyku.
Rust je zas vic potomek C++.
Ve smyslu, že Rust je složitější?

Spíše, že Rust je mocnější.

Ale je možné, že ze mě mluví potřeba po statickém typování. Zatímco GO, je spíše takové poraď si sám (bez pejorativnosti).

2
Vývoj / Re:Za jak dlouho se naučím C++?
« kdy: 15. 06. 2019, 22:33:33 »
a jaký jazyk byste mu doporučili?
Rust. Pro začátečníka je náročný na učení, ale to C++ taky. Výkon srovnatelný s C++. Spousta chyb, které se v C++ projeví až za běhu, odchytí Rust už při překladu.

Souhlasím. Pokud mohu být trochu kategorický, tak věnovat se C++ má v dnešní době smysl v případě, kdy se chceš věnovat nějakým legaci věcem. Osobně jsem přesvědčen, že Rust je nástupce C, C++, a nemá smysl se učit pro danou niku něco jiného.

3
Zdravim,

mohl by se prosím někdo, kdo má zkušenosti s programováním pro staré telefony, ideálně Sony Ericssony (K750 a podobné) podělit o tom, jak se pro ně vyvíjí programy?

Stáhl sis SDKáčko s podporou pro J2EM (javax.microedition.*). Pak emulátor toho kterého telefonu (já třeba měl Motorolu). Pak sis musel nastavit profil, kterým jsi tak nějak říkal tomu telefonu co od něj chceš. Většina těch telefonů to stejně ignorovala, ale což.

Programoval jsi normálně na PC, v klasickém IDE, všechno fungovalo stejně. Jen jsi měl omezené knihovní prostředky. A myslet na výkon. Vygeneroval sis jarko a jadko, a to si poslal do telefonu. Někdy to šlo kabelem, u některých telefonů jsem to musel stahovat oklikou přes internet.

4
Vývoj / Re:SW pro náhradu kódu
« kdy: 02. 06. 2019, 12:31:06 »
Semanticke patchovani?

http://coccinelle.lip6.fr/
Máš s tím nějaké zkušenosti?

5
Vývoj / Re:Jak mam programovat v Node.js?
« kdy: 25. 05. 2019, 01:50:13 »
Napadlo me toto, co kdybych udelal design tak, ze nebudu definovat domenovy model v aplikaci, ale budu ho mit definovan jen v databazi a v aplikaci budu mit jen DAO vrstvu?

Myslím, že to vůbec není špatný nápad.

6
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 22:32:42 »
Ano. Psal jsem o traitech a mixinech. To považuji za vhodného kadidáta.
Jj. Ale dabel je v detailu. O Go jsem si myslel, ze jde presne spravnou cestou, dokud jsem ho nezacal pouzivat a nenapsal v nem neco aspon trochu abstraktniho, coz bylo dost utrpeni :)
Něco konkrétnějšího by nebylo?

Na vztahy jsem uvažoval v duchu Prologu. Ale zatím jsem nic nevymyslel :-)
Hlavne s tim nic nevymyslej, abys promatkuprirodu nahodou nevymyslel neco, co byse mohlo chytnout! ;)
Slibuju. Až to vymyslím, tobě to natruc neřeknu.


Prolog je uzasnej jako "inteligentni databaze". Ale programovat v tom "imperativne"
Protože od toho Prolog není. Právě proto píšu, že na vztahy.

7
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 22:18:45 »
Dědičnost bych nezavrhoval úplně, ale souhlasím že pro intuitivní implementaci vztahu "is-a" se moc nehodí. I když se tak často prezentuje.

Na vztahy jsem uvažoval v duchu Prologu. Ale zatím jsem nic nevymyslel :-)

8
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 22:12:37 »
Takže nakonec to přece jenom bude JavaScript? ;-) (Spread operátor na objektových literálech v ECMAScript 2018.)
JS není špatný v principu, ale v tom, že se tam doprasilo co mohlo. Lua je "JS done right", nezaznamenal jsem, že by s ní kdokoli měl problém. Ne že by to byl jazyk, ve kterém bych nějak zvlášť chtěl dělat, ale je to jazyk hodný respektu.

+1

9
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 22:11:38 »
Jestli ponechat dědičnost na úrovni rozhraní, nebo ani v tomto případě ne?
Co dobrého a netriviálního by podle tebe přineslo to mít? Já mám pocit, že dědičnost kdekoli dělá víc škody než užitku*.
To úplně tak promyšlený nemám. Jednou jsem si hrál s něčím takovým:
Article
ArticleIdentification <- Article
ArticleSlugIdentification <- ArticleIdentification
ArticleIdIdentification <- ArticleIdentification
ArticleFullIdentification <- ArticleIdentification
ArticlePreview <- Article, ArticleIdentification
ArticleDetail <- Article, ArticleIdentification
ArticleModify <- Article, ArticleIdentification, Command
ArticleCreate <- Article, Command

Smysl to dávalo, neměl jsem možnost to pořádně prozkoumat praxí. A dráždí mě tam ta evidentní ukecanost.

Mně by se spíš líbilo to nahradit pěkným, stručným skládáním. Je dost škoda, když je v některých jazycích potřeba celé API vloženého objektu znovu zopakovat na tom vnějším (mám matný pocit, že to tak má někde Rust, ale přesně si to teď nevybavím).

Ano. Psal jsem o traitech a mixinech. To považuji za vhodného kadidáta.

10
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 21:34:49 »
K tématu:

Uvažoval jsem, že některé vlastnosti OOP se moc neosvědčili. Dědičnost a abstraktní třídy, vzor template method. Místo toho mixiny, nebo traity. Tedy znovupoužitelné fragmenty kódu, bez zanášení typu. Jestli ponechat dědičnost na úrovni rozhraní, nebo ani v tomto případě ne?

11
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 21:25:26 »
Tuhle variantu už jste vy naimplementoval pro oba jazyky, a – světe div se – je to jak jsem psal, vychází to v obou jazycích stejně. Dovolte, abych z vašeho kódu ty dva řádky vypíchl:
No, nevychází, že  ;D


Kód: [Vybrat]
System.out.println(a.equals(b)); // true
print (a == b) # True – používá se zde přetížený operátor ==
Přesně tak. Čitelnější to být nemůže.

Java, int: ekvivalence, použije se ==. Porovnání identity, zde popravdě netuším.
Java, objekt: ekvivalence, použije se operátor/metoda equals(). Porovnání identity, použije se operátor ==
Python, int: ekvivalence, použije se operátor ==. Porovnání identity, použije se operátor is.
Python, objekt: ekvivalence, použije se operátor ==, který se interně převede na __eq__. Porovnání identity, použije se operátor is.

A takhle, jak je to v Pythonu to mám rád.

Popravdě, zase si moc nefanděte. Já to píšu jen tak jako cvičení. Opravdu si nedělám naděje vám cokoliv vysvětlit  ;D

12
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 20:13:21 »
Každopádně ale musím uznat, že je to řachanda.

Kód: [Vybrat]
$ cat Main.java
public class Main {
    public static void main(String[] args) {
        Integer a = 1024;
        Integer b = 1024;
        System.out.println(a == b);
        System.out.println(a == 1024);
    }
}

$ javac Main.java

$ java -cp . Main
false
true

Doporučují čtyři ze tří psychoterapeutů.

První problém: Nechceme použít přetěžování operátorů. Díky tomu nemůžeme chápat equals jako ==. To by problém řešilo.
Problém druhý: Je škoda nevyužít operátor ==, když už ho nemůžeme na objektech použít pro ekvivalenci. Tak ho použijeme na porovnání identity.

A je to :-) Myslím, že tak nějak to bylo.

13
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 19:45:15 »
Zase špatně: Výsledek není stejný. Python se nechová jako Java. https://gist.github.com/BoneFlute/6c9f56a6b4c164b2fc2f246662daa7a8
Je fajn, že jste si to sám vyzkoušel, a zjistil jste, že je to přesně tak, jak jsem napsal. Akorát pak svůj komentář nezačínejte „zase špatně“, vypadá to, jako když jsem to napsal špatně já. Málokdo pochopí, jak jste to doopravdy myslel – že jste se zase mýlil vy.

Hezkej pokus. Ale uvědomujete si, že si to každý nyní může prohlídnout a bude jim to jasné?  8)

14
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 19:30:44 »
Bazírovat na tom můžete, smutné je, že nemáte pravdu.

Kód: [Vybrat]
class Integer:
    def __init__(self, value):
        self.value = value

a = Integer(1024)
b = Integer(1024)
print(a == b) #False
Co jsem udělal? Vzal jsem ten původní kód, který rozpoutal celou debatu. Kód, který se údajně v Javě chová úplně nemožně. Napsal jsem to samé v Pythonu, který se prý chová úplně jinak. A výsledek je co? Výsledek je naprosto stejný.

Python se chová přesně tak, jako se chová Java, dělá přesně to, co kritizujete.

Jistě budete argumentovat tím, že v Pythonu to můžete dál vylepšovat. Můžete do třídy dopsat přetížení operátoru:
Kód: [Vybrat]
def __eq__(self, other):
    return self.value == other.value
Ano, můžete. V Javě to také můžete dál upravovat, můžete přetížit metodu equals() (resp. ve třídě java.lang.Integer už ta metoda dávno přetížená je).

Zase špatně: Výsledek není stejný. Python se nechová jako Java. https://gist.github.com/BoneFlute/6c9f56a6b4c164b2fc2f246662daa7a8

15
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 16:23:48 »
Mimochodem, představte si, že v tom vašem příkladu a bude float a b bude double.
Predstavoval jsem si to tak silne, az se mi to zhmotnilo: https://play.golang.org/p/Jw9NlBT_VC_1

+1

Stran: [1] 2 3 ... 77

reklama