<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>innowacje w programowaniu » enterv.pl</title>
	<atom:link href="https://enterv.pl/tag/innowacje-w-programowaniu/feed/" rel="self" type="application/rss+xml" />
	<link>https://enterv.pl</link>
	<description>Więcej niż tylko portfolio i blog</description>
	<lastBuildDate>Tue, 04 Mar 2025 17:27:34 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://enterv.pl/wp-content/uploads/2022/12/cropped-1024_bt-32x32.png</url>
	<title>innowacje w programowaniu » enterv.pl</title>
	<link>https://enterv.pl</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ChatGPT, a programowanie. Czy to dobry pomysł?</title>
		<link>https://enterv.pl/2023/01/17/chatgpt-a-programowanie-czy-to-dobry-pomysl/</link>
					<comments>https://enterv.pl/2023/01/17/chatgpt-a-programowanie-czy-to-dobry-pomysl/#comments</comments>
		
		<dc:creator><![CDATA[enterv]]></dc:creator>
		<pubDate>Tue, 17 Jan 2023 08:35:03 +0000</pubDate>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[automatyczne programowanie]]></category>
		<category><![CDATA[automatyzacja procesów]]></category>
		<category><![CDATA[chatbots]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[dobry pomysł]]></category>
		<category><![CDATA[edukacja informatyczna]]></category>
		<category><![CDATA[generowanie kodu]]></category>
		<category><![CDATA[innowacje w programowaniu]]></category>
		<category><![CDATA[kariera programisty]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[model językowy]]></category>
		<category><![CDATA[narzedzie programistyczne]]></category>
		<category><![CDATA[nauka programowania]]></category>
		<category><![CDATA[openai]]></category>
		<category><![CDATA[potencjał ChatGPT w rozwoju kariery]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[programowanie z pomocą AI]]></category>
		<category><![CDATA[programowanie z wykorzystaniem sztucznej inteligencji]]></category>
		<category><![CDATA[przygotowanie]]></category>
		<category><![CDATA[przyspieszenie procesu tworzenia oprogramowania]]></category>
		<category><![CDATA[przyszłość pracy]]></category>
		<category><![CDATA[przyszłość programowania]]></category>
		<category><![CDATA[rozwiązania AI]]></category>
		<category><![CDATA[rozwój kariery]]></category>
		<category><![CDATA[samodzielne poprawianie kodu]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[technologie AI]]></category>
		<category><![CDATA[technologie przyszłości]]></category>
		<category><![CDATA[umiejętności informatyczne]]></category>
		<category><![CDATA[wiedza]]></category>
		<category><![CDATA[wprowadzenie do AI]]></category>
		<category><![CDATA[wprowadzenie do ChatGPT]]></category>
		<category><![CDATA[wspomaganie programowania]]></category>
		<category><![CDATA[zastosowanie ChatGPT w programowaniu]]></category>
		<guid isPermaLink="false">https://enterv.pl/?p=641</guid>

					<description><![CDATA[<p>Cześć kochani, dzisiaj wtrącę moje dwa grosze jakże to hucznym temacie AI ChatGPT, który uznaje się za dosyć rewolucyjnym narzędziem. Jaka jest zatem prawda?</p>
Artykuł <a href="https://enterv.pl/2023/01/17/chatgpt-a-programowanie-czy-to-dobry-pomysl/">ChatGPT, a programowanie. Czy to dobry pomysł?</a> pochodzi z serwisu <a href="https://enterv.pl">enterv.pl</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Pozorna prostota</h2>



<p>Wystarczy, wpisać tylko kilka słów, a AI zacznie nam generować kod, który na pierwszy rzut oka robi to dobrze. Jeśli założymy, że cały projekt zaczniemy od początku do końca na ChatGPT, to w większości przypadków powinno się obejść bez błędów.</p>



<p>Przykładowe polecenie: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Napisz mi Encję Cat w języku TS. Powinna mieć kilka własności i metod:</p>



<pre class="wp-block-code"><code lang="typescript" class="language-typescript line-numbers">class Cat {
    name: string;
    age: number;
    color: string;
    private _weight: number;

    constructor(name: string, age: number, color: string, weight: number) {
        this.name = name;
        this.age = age;
        this.color = color;
        this._weight = weight;
    }

    get weight(): number {
        return this._weight;
    }

    set weight(value: number) {
        this._weight = value;
    }

    meow(): void {
        console.log("Meow!");
    }

    eat(food: string): void {
        console.log(`${this.name} is eating ${food}.`);
    }

    sleep(): void {
        console.log(`${this.name} is sleeping.`);
    }
}</code></pre>



<p></p>
</blockquote>



<p>i generalnie nie ma tutaj większej zawiłości, bo kod jest zrozumiały, ale z drugiej strony to ten sam kod można napisać prościej. Osoby, które się znają, od razu zobaczą, że własności można zadeklarować i przypisać za pomocą samego konstruktora, dzięki czemu odpada nam pisanie tego samego aż 3 razy.</p>



<h2 class="wp-block-heading">Poprawianie AI ChatGPT</h2>



<p>Na szczęście dosyć często kod z ChatGPT można łatwo poprawić kolejną prostą komendą.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p> Zadeklaruj własności za pomocą konstruktora: </p>



<pre class="wp-block-code"><code lang="typescript" class="language-typescript line-numbers">class Cat {
    constructor(
        public name: string,
        public age: number,
        public color: string,
        private _weight: number
    ) {}

    get weight(): number {
        return this._weight;
    }

    set weight(value: number) {
        this._weight = value;
    }

    meow(): void {
        console.log("Meow!");
    }

    eat(food: string): void {
        console.log(`${this.name} is eating ${food}.`);
    }

    sleep(): void {
        console.log(`${this.name} is sleeping.`);
    }
}
</code></pre>
</blockquote>



<p>W ten oto sposób dostajemy uproszczony kod. Zauważmy jednak, że wszystkie publiczne metody tak na prawdę nic nie robią poza wyświetleniem informacji. Zmieńmy to podając AI kolejne komendy. Zobaczmy najpierw czy się domyśli o co mi chodzi, jeśli nie zda egzaminu to podamy więcej konretów. </p>



<h2 class="wp-block-heading">Rozszerzanie kodu</h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://enterv.pl/wp-content/uploads/2022/11/19362653-1024x683.webp" alt="app design image" class="wp-image-509" srcset="https://enterv.pl/wp-content/uploads/2022/11/19362653-1024x683.webp 1024w, https://enterv.pl/wp-content/uploads/2022/11/19362653-300x200.webp 300w, https://enterv.pl/wp-content/uploads/2022/11/19362653-768x512.webp 768w, https://enterv.pl/wp-content/uploads/2022/11/19362653-1536x1024.webp 1536w, https://enterv.pl/wp-content/uploads/2022/11/19362653-2048x1365.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Chciałbym, aby metody zamiast console.log robiły coś więcej. Zrób te metody bardziej funkcjonalne:</p>



<pre class="wp-block-code"><code lang="typescript" class="language-typescript line-numbers">class Cat {
    constructor(
        public name: string,
        public age: number,
        public color: string,
        private _weight: number
    ) {}

    get weight(): number {
        return this._weight;
    }

    set weight(value: number) {
        this._weight = value;
    }

    meow(): string {
        return `${this.name} says "Meow!"`;
    }

    eat(food: string): string {
        return `${this.name} is eating ${food}.`;
    }

    sleep(): string {
        return `${this.name} is sleeping.`;
    }
}

const fluffy = new Cat("Fluffy", 2, "white", 5);
console.log(fluffy.meow());
console.log(fluffy.eat("tuna"));
console.log(fluffy.sleep());</code></pre>
</blockquote>



<p>Zostawiam to waszej ocenie. Jak dla mnie AI dostało za mało konkretów i moim zdaniem metody nadal są za mało funkcjonalne. Jednak trzeba to przyznać, że jest zdeterminowane, bo faktycznie wywaliło console.log z metod za co jakiś punkt można mu przyznać pomimo tego, że miał to w poleceniu.</p>



<p>Dajmy mu coś teraz bardziej zrozumiałego</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Metoda meow powinna włączać dźwięk maiuczenia kota. Metoda eat powinna zwiększać sytość oraz wagę jeśli kot jest przekarmiany &#8211; należy wprowadzić jakiś system metabolizmu. Metoda sleep powinna regenerować energię kota:</p>



<pre class="wp-block-code"><code lang="typescript" class="language-typescript line-numbers">class Cat {
    private _hunger: number;
    private _energy: number;
    private _metabolism: number;

    constructor(
        public name: string,
        public age: number,
        public color: string,
        private _weight: number
    ) {
        this._hunger = 0;
        this._energy = 100;
        this._metabolism = 10;
    }

    get weight(): number {
        return this._weight;
    }

    set weight(value: number) {
        this._weight = value;
    }

    meow(): void {
        new Audio("cat-meow.mp3").play();
    }

    eat(food: string): void {
        this._hunger -= 10;
        if(this._hunger &lt; 0) {
            this._hunger = 0;
        }
        this._weight += this._metabolism;
        console.log(`${this.name} is eating ${food}. Hunger level: ${this._hunger}%. Weight: ${this._weight}kg`);
    }

    sleep(): void {
        this._energy += 10;
        if(this._energy &gt; 100) {
            this._energy = 100;
        }
        console.log(`${this.name} is sleeping. Energy level: ${this._energy}%`);
    }
}

const fluffy = new Cat("Fluffy", 2, "white", 5);
fluffy.meow();
fluffy.eat("tuna");
fluffy.sleep();</code></pre>



<p>This is an example of how you can make the methods more functional as you described. The <code>meow()</code> method now plays an audio file of a cat meowing. The <code>eat()</code> method now decreases the cat&#8217;s hunger level and increases its weight based on the cat&#8217;s metabolism rate. The <code>sleep()</code> method increases the cat&#8217;s energy level. You can also see that there are some private properties like <code>_hunger</code>, <code>_energy</code>, <code>_metabolism</code> and <code>_weight</code> which are updated in the methods and if needed have a limit.</p>



<p>Please note that the audio file and the path to it must exist and be accessible in the code in order for this code to work as expected.</p>
</blockquote>



<p></p>



<p>Jak dla mnie średnio, bo wracamy do tego, że znowu trzeba poprawić AI z tym kontruktorem, ale poza tym to myślę że dał radę pomimo tego, że wrócił z tymi console.log-ami.</p>



<h2 class="wp-block-heading">Poważne zadanie</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="683" src="https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_-1024x683.jpg" alt="" class="wp-image-479" srcset="https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_-1024x683.jpg 1024w, https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_-300x200.jpg 300w, https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_-768x512.jpg 768w, https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_-1536x1024.jpg 1536w, https://enterv.pl/wp-content/uploads/2022/11/vecteezy_graphic-designer-learning-program-software-painting-on-computer_.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Jako iż bardzo ważne jest skonfigurowanie środowiska potrzebnego do pracy, poproszę AI o to, aby wygenerowało mi konfigurację Dockera potrzebną do uruchomienia ww. kodu.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Wygeneruj konfigurację Docker dla nodejs tak, aby można było bez problemu uruchomić ww. kod:</p>



<p>Here is an example of a Dockerfile that can be used to run a Node.js application, including the code you provided:</p>



<pre title="Dockerfile" class="wp-block-code"><code lang="docker" class="language-docker line-numbers">FROM node:14-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install
COPY . .

CMD [ "node", "index.js" ]</code></pre>



<p>This Dockerfile uses the official Node.js Alpine image as the base image and sets the working directory to /usr/src/app. It then copies the package.json and package-lock.json files and runs npm install to install the dependencies. After that it copies all the files to the container and CMD instruction runs node index.js command, to start the application.</p>



<p>You will also need to have a file named index.js in the same directory as your Dockerfile that contains the code you want to run.</p>



<p>After that you can build your image using:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker build -t my-node-app .</code></pre>



<p>And then start the container using:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker run -p 3000:3000 my-node-app</code></pre>



<p>This will start a container with your Node.js application running on port 3000 and the container will be accesible on localhost:3000.</p>



<p>Please note that this is just an example and you might need to adjust the Dockerfile or the command depending on your specific needs and requirements.</p>
</blockquote>



<p>Widzę tutaj małe niedociągnięcie w Dockerfile, bo po co kopiować <code>package*.json</code>, a potem drugą komendą tak na prawdę wszystko, skoro można skopiować od razu wszystko i potem wykonać <code>npm install</code>? Z drugiej strony jak na nasz wygenerowany programik nie powinno się nic złego stać.</p>



<p>Drugą wadą jest to, że nasz kod ani trochę nie jest serwerowy, a tu nam karze go tak uruchamiać. Zatem nie domyślił się, że chodzi o CLI pomimo tego, że tak powinno wyjść z kontekstu. Zatem poproszę go o wygenerowanie drugiej konfiguracji. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Wygeneruj konfigurację Docker dla CLI nodejs</p>



<p>Here is an example of a Dockerfile that can be used to run a Node.js command-line application:</p>



<pre title="Dockerfile" class="wp-block-code"><code lang="docker" class="language-docker">FROM node:14-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install
COPY . .

ENTRYPOINT [ "npm", "start" ]</code></pre>



<p>This Dockerfile uses the official Node.js Alpine image as the base image and sets the working directory to /usr/src/app. It then copies the package.json and package-lock.json files and runs npm install to install the dependencies. After that it copies all the files to the container and ENTRYPOINT instruction runs npm start command, to start the command line application.</p>



<p>You will also need to have a file named package.json in the same directory as your Dockerfile that contains the command you want to run, for example:</p>



<pre class="wp-block-code"><code lang="json" class="language-json">"scripts": {
    "start": "node index.js --arg1 --arg2"
  },</code></pre>



<p>After that you can build your image using:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker build -t my-node-cli-app .</code></pre>



<p>And then start the container using:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker run -it my-node-cli-app --arg1 --arg2</code></pre>



<p>This will start a container with your Node.js command-line application running, and the arguments passed in the command line after run command will be passed to the npm start command</p>



<p>Please note that this is just an example and you might need to adjust the Dockerfile or the command depending on your specific needs and requirements.</p>
</blockquote>



<p>Teraz jest znacznie lepiej, bo mamy możliwość odpalania aplikacji za pomocą prostej dockerowej komendy. Oczywiście dla tego przykładu przesadą jest stosowanie argumentów, ponieważ żaden nie jest nam potrzebny.</p>



<p>Fajnie jednak by było, gdyśmy jednak nie musieli ciągle wpisywać tego długiego ciągu znaków za każdym razem, aby uruchamiać aplikację, na to już rozwiązanie mamy: poprosimy AI 😁</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Utwórz plik wsadowy zawierający docker run -it my-node-cli-app &#8211;arg1 &#8211;arg2, aby uprosić uruchamianie:</p>



<p>You can create a shell script file with the docker run command to simplify running your Node.js command-line application in a container. Here is an example of a shell script file named run-app.sh:</p>



<pre title="run-app.sh" class="wp-block-code"><code lang="bash" class="language-bash">#!/bin/bash
docker run -it my-node-cli-app --arg1 --arg2</code></pre>



<p>This script file can be placed in the same directory as your Dockerfile and can be executed by running ./run-app.sh in the terminal.</p>



<p>You can also make the script file executable by running</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">chmod +x run-app.sh</code></pre>



<p>and then you can run it directly with</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">./run-app.sh</code></pre>



<p>You can also pass parameters to the script file and then use them as arguments for the docker run command. For example, you can modify the script file to accept parameters and use them as arguments for the command</p>



<pre title="./run-app.sh" class="wp-block-code"><code lang="bash" class="language-bash">#!/bin/bash
docker run -it my-node-cli-app $1 $2</code></pre>



<p>and then you can run the script passing parameters</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">./run-app.sh --arg1 --arg2</code></pre>
</blockquote>



<p>ChatGPT dał nam ciekawy wybór, bo możemy zrobić plik sh z możliwością luźnego lub sztywnego parametryzowania. Jednak to co mnie zadziwiło to to że to wcześniej pisał o CMD, który jest Windowsowy, a plik wsadowy zrobił na Linux 😂</p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p>OpenAI stworzyło na prawdę bardzo pomocne narzędzie, które przydaje się w wielu dziedzinach. W tym artykule skupiliśmy się na programowaniu i krok po kroku pokazałem jak wygląda wytwarzanie bardzo prostego kodu za pomocą ChatGPT.</p>



<p>W mojej opinii osobom bez większej wiedzy specjalistycznej czasami będzie trudno odróżnić co za zabobony ten AI pisze, a dobre ku temu dowody dostarczyłem w tym artykule.</p>



<p>Uważam, że AI najlepiej precyzyjnie określać to co od niego oczekujemy i z jakich standardów ma korzystać. Gdy już swoje wiemy, to narzędzie może nam bardzo pomóc w wytwarzaniu oprogramowania, bo będziemy wiedzieć co jest do podmianki, co trzeba dopowiedzieć itd.</p>



<p>Dziękuję bardzo za uwagę, i kochani, widzimy się w kolejnym artykule 😃</p>Artykuł <a href="https://enterv.pl/2023/01/17/chatgpt-a-programowanie-czy-to-dobry-pomysl/">ChatGPT, a programowanie. Czy to dobry pomysł?</a> pochodzi z serwisu <a href="https://enterv.pl">enterv.pl</a>.]]></content:encoded>
					
					<wfw:commentRss>https://enterv.pl/2023/01/17/chatgpt-a-programowanie-czy-to-dobry-pomysl/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Dlaczego nie znoszę języka Python</title>
		<link>https://enterv.pl/2022/07/18/dlaczego-nie-znosze-jezyka-python/</link>
					<comments>https://enterv.pl/2022/07/18/dlaczego-nie-znosze-jezyka-python/#comments</comments>
		
		<dc:creator><![CDATA[enterv]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 13:30:00 +0000</pubDate>
				<category><![CDATA[Pozostałe]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[automatyzacja procesów]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[biblioteki]]></category>
		<category><![CDATA[czy python]]></category>
		<category><![CDATA[czytelność kodu]]></category>
		<category><![CDATA[dokumentacja]]></category>
		<category><![CDATA[efektywność]]></category>
		<category><![CDATA[entuzjazm]]></category>
		<category><![CDATA[fanatycy]]></category>
		<category><![CDATA[fanatycy python]]></category>
		<category><![CDATA[fanatycy pythona]]></category>
		<category><![CDATA[funkcjonalność]]></category>
		<category><![CDATA[innowacje]]></category>
		<category><![CDATA[innowacje w programowaniu]]></category>
		<category><![CDATA[integracja]]></category>
		<category><![CDATA[język Python]]></category>
		<category><![CDATA[języki niskiego poziomu]]></category>
		<category><![CDATA[języki programowania]]></category>
		<category><![CDATA[języki wysokiego poziomu]]></category>
		<category><![CDATA[kultura programistyczna]]></category>
		<category><![CDATA[najlepsze praktyki]]></category>
		<category><![CDATA[narzędzia]]></category>
		<category><![CDATA[narzędzia developerskie]]></category>
		<category><![CDATA[nauka programowania]]></category>
		<category><![CDATA[niechęć]]></category>
		<category><![CDATA[pasja]]></category>
		<category><![CDATA[popularność]]></category>
		<category><![CDATA[porównanie języków]]></category>
		<category><![CDATA[produktywność]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[programowanie funkcyjne]]></category>
		<category><![CDATA[programowanie obiektowe]]></category>
		<category><![CDATA[programowanie proceduralne]]></category>
		<category><![CDATA[programowanie zespołowe]]></category>
		<category><![CDATA[przegląd języków]]></category>
		<category><![CDATA[przyszłość języków]]></category>
		<category><![CDATA[przyszłość programowania]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rozwijanie kariery]]></category>
		<category><![CDATA[rozwój kariery]]></category>
		<category><![CDATA[rynki zatrudnienia]]></category>
		<category><![CDATA[skalowalność]]></category>
		<category><![CDATA[składnia]]></category>
		<category><![CDATA[społeczność programistów]]></category>
		<category><![CDATA[technologie]]></category>
		<category><![CDATA[trend]]></category>
		<category><![CDATA[trendy programistyczne]]></category>
		<category><![CDATA[trudność języka]]></category>
		<category><![CDATA[tworzenie aplikacji]]></category>
		<category><![CDATA[użyteczność]]></category>
		<category><![CDATA[wsparcie]]></category>
		<category><![CDATA[wsparcie społeczności]]></category>
		<category><![CDATA[współpraca z innymi językami]]></category>
		<category><![CDATA[wybór języka]]></category>
		<category><![CDATA[wydajność]]></category>
		<category><![CDATA[zaangażowanie]]></category>
		<category><![CDATA[zainteresowanie]]></category>
		<category><![CDATA[zarobki]]></category>
		<category><![CDATA[zarządzanie projektem]]></category>
		<category><![CDATA[zastosowanie]]></category>
		<guid isPermaLink="false">https://enterv.pl/?p=134</guid>

					<description><![CDATA[<p>Cześć, dzisiaj tak bardziej z żalem do świata, ale nie traćmy nadziei, może będzie śmiesznie (albo na pewno tak będzie) 🤪 Drobne wyjaśnienie Python z logiem węża jest językiem programowania i w zasadzie tyle wystarczy o nim wiedzieć, aby zrozumieć cały ten wpis. Nie chcę zagłębiać się w techniczne szczegóły, które mogłyby być dla większości [&#8230;]</p>
Artykuł <a href="https://enterv.pl/2022/07/18/dlaczego-nie-znosze-jezyka-python/">Dlaczego nie znoszę języka Python</a> pochodzi z serwisu <a href="https://enterv.pl">enterv.pl</a>.]]></description>
										<content:encoded><![CDATA[<p>Cześć, dzisiaj tak bardziej z żalem do świata, ale nie traćmy nadziei, może będzie śmiesznie (albo na pewno tak będzie) 🤪</p>



<h2 class="wp-block-heading">Drobne wyjaśnienie</h2>



<p>Python z logiem węża jest językiem programowania i w zasadzie tyle wystarczy o nim wiedzieć, aby zrozumieć cały ten wpis. Nie chcę zagłębiać się w techniczne szczegóły, które mogłyby być dla większości niezrozumiałe, a wiem, że i bez tych technikalii da się zrozumieć poziom fanatyzmu ludzi z wężem zamiast myślenia.</p>



<h2 class="wp-block-heading">Zaczynamy zatem?</h2>



<p>Ogólnie to nie tyle co sam język mi zawinił, co ludzie, którzy dosyć często przeginają. Takich da się spotkać wszędzie i na każdym kroku, w każdym zawodzie i w każdym środowisku.</p>



<p>Python jako tako tolerowałem tak jak część Polaków toleruje siebie wzajemnie &#8211; na zasadzie &#8222;żyj se pan, tylko daj mi żyć&#8221; i tak układ był w porządku. Jednak wraz z dalszą egzystencją coraz częściej napotykałem się z trendem afiszowania się Pythonem na lewo i prawo jakby ci ludzie nie mieli co robić albo jakby byli z jakiejś dziwnej wężowej sekty.</p>



<p>Zanim jednak rozpędzę się z opowiadaniem o tym jacy są ludzie; chcę zaznaczyć, że nie uważam że każdy kto pisze w języku Python jest fanatykiem i dziwakiem. Według moich obserwacji i doświadczeń uważam że w tej grupie większość stanowi ludzi o takim stanie umysłowym.</p>



<p>Skoro już wiemy że nie wrzucam wszystkich do jednego worka, a chodzi mi o pewnych specyficznych wybrańców to mogę rozpocząć paradę urodzaju 🙃</p>



<h2 class="wp-block-heading">Python jest najlepszy we wszystkim!</h2>



<p>Z takim stwierdzeniem nie powinien unosić się ani jeden programista do ani jednego języka. Mam taką ulubioną analogię z narzędziami: masz skrzynkę z narzędziami i w niej różne narzędzia. Oczywiście każde narzędzie to jakiś język programowania (i to też można dosłownie rozumieć). Wyobraź sobie że chcesz skręcić rury, no to bierzesz klucz francuski albo jakiś inny i robisz swoje. No ok no to przyszedł czas złożyć meble i tam już klucza francuskiego nie użyjesz. No ale masz takie multinarzędzie. Ok tam są jakieś mini śrubokręty i noże. Coś się to nada, ale w pewnej sytuacji zauważasz że jest już z tym niewygodnie, zwłaszcza jak musisz leżeć i daleko sięgać. Wtedy bierzesz bardziej poręczny pojedynczy śrubokręt.</p>



<p>Także nawet z pozoru uniwersalne rzeczy czasami nie dają rady. Każdy język programowania jest tylko narzędziem pozwalającym osiągnąć dane dla niego cele. No ale i tak znajdzie się nie jeden pythonowiec co uzna i będzie się upierać że w tym języku da się wszystko i że nic innego już nie jest potrzebne..</p>



<h2 class="wp-block-heading">; &#8211; ten znak to zło</h2>



<p>To jest średnik. W języku Python nie trzeba go stosować, a jak użyjesz to ustaw konfigurację tak aby ten znak był ignorowany. No i pewnie tym zdaniem naraziłem się na inwazję i liczne kazania o tym czemu ten znak powinien być całkowicie zakazany 🤣 Ludzie! To tylko zwykły znak. W wielu językach programowania nawet konieczny (często kończy instrukcję w kodzie).</p>



<p>Ja do średnika jestem przyzwyczajony no i spoko. Ani to dziwne, ani to złe. A co z jego brakiem w Python? No to też mnie nie rusza. Jednak wiem że nie każdy podziela moje podejście to tego zwykłego znaku (iks de).</p>



<p>Słyszałem raz o książce (oczywiście podręcznik do Python), w której autor wręcz poświęcił 3 strony tylko po to, aby wybić średnik z głowy. Dużo przyjaciół Draco Malfoy&#8217;a (celowe nawiązanie) też tak ma. No i ok..? ja rozumiem że jakiś język programowania nie potrzebuje średników, takich języków jest więcej niż jeden Python (np. znane JavaScript czy Ruby), ale nie ma sensu robić ze średników afery na cały świat 😑</p>



<h2 class="wp-block-heading">A bo w Pythonie to byś szybciej i lepiej to ogarnął </h2>



<p>Tylko pytanie po co? Wiesz.. mam projekt który jest rozgrzebany i duży i chce w nim używać swojego języka i aby tą moją pipipupe zrobić w Python (chociaż nie tylko) to musiał to bym musiał cały projekt przepisać na ten drugi język.</p>



<p>Ogólnie to się też łączy z tym co pisałem wcześniej o uniwersalności języka. Nic nie jest do wszystkiego i też nie ma sensu nagle bez większego celu zmieniać języka. To że jakąś trudność napotkałem to znaczy że mam szansę czegoś nowego się nauczyć i nawet spróbować rozwiązać problem po swojemu.</p>



<p>Aby się nie zaciągać za bardzo w techniczne szczegóły to, w skrócie powiem że jest takie coś że jednak w jednym języku zrobisz coś lepiej, a w innym gorzej. Tylko no właśnie.. jeśli ktoś szuka pomocy bo coś w C# mu nie działa to ta osoba oczekuje, że ktoś powie mu coś o C#, a nie czeka na puste słowa &#8222;zmień język&#8221; albo &#8222;po co się męczyć, wybierz python&#8221;. Prosta zasada &#8211; nie wpychaj się jeśli nic nie masz do powiedzenia, ale pythonowcy fanatycy to jednak rozumieją na opak.</p>



<h2 class="wp-block-heading">O rany, czemu używasz tego paskudnego języka, który nie jest Pythonem?</h2>



<p>No to już wchodzimy na wyższy poziom fanatyzmu bycia członkiem sekty wężów.</p>



<p>Pamiętacie co mówiłem że nie każdy język jest do wszystkiego? A pamiętacie że one się różnią zastosowaniem? No to tutaj jest taka sprawa: olej to. Na co ci różnice? Jest tylko jeden słuszny język. Tak zgadza się! to Święty Python Trzeci. 😶 </p>



<p>Tutaj już nie można mieć argumentów, o nie! Jakkolwiek nie będziesz się bronić to i tak wybór języka musi być jeden i to nie może być to co akurat potrzebujesz. Na tym poziomie absurdu to nawet HTML i CSS (dwie podstawowe rzeczy dzięki którym mamy ładne strony na internecie) nie wolno używać, bo wszystko ma zrobić Święty Python pogromca! </p>



<p>Dla tych co doszli do takiego poziomu samo-uparcia obrazą jest nawet to na czym ja mam ten mój blog. Na szczęście takich pythonowców poznałem niewiele, chociaż szczerze nie chciałbym ich nigdy poznać. </p>



<p>A i jeszcze powiesz takiemu, że potrzebujesz konkretnych cech języka, które nie posiada Python to.. łoho 😀 &#8211; zainteresowanie bycie Tobą zmalało do 0 😉 &#8211; w skrócie WIEJ!</p>



<h2 class="wp-block-heading">Koniec?</h2>



<p>Niby tak, ale gdyby jeszcze technicznie się zagłębić w temat to pisania i czytania było by o wiele, wiele więcej. </p>



<p>Te wszystkie osoby, które poznałem, a są pythonowcami, tak mnie zrazili do siebie i tak mi obrzydzili język Python, że nie chce go używać (zwłaszcza że kiedyś z jednym takim mieszkałem). Ogólne społeczeństwie programistów jest wiele osób używająca inne języki i które nie lubą gadać z wężoludziami. </p>



<p>Pamiętajcie że ja nie opowiadałem o wszystkich wężownikach, tylko o konkretnym odłamie fanatyków, których akurat jest całkiem sporo i nie tylko w ich języku/zawodzie/statusie/itd./itp. takie osoby da się znaleźć.</p>Artykuł <a href="https://enterv.pl/2022/07/18/dlaczego-nie-znosze-jezyka-python/">Dlaczego nie znoszę języka Python</a> pochodzi z serwisu <a href="https://enterv.pl">enterv.pl</a>.]]></content:encoded>
					
					<wfw:commentRss>https://enterv.pl/2022/07/18/dlaczego-nie-znosze-jezyka-python/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
