La programmazione è creativa?

di il
12 risposte

La programmazione è creativa?

Ciao a tutti,
mi sono sempre domandato: "La programmazione è creativa?".
Cioè in pratica sappiamo tutti che esistono molti modi per scrivere un programma che esegue le stesse cose, poiché esistono differenti tipologie di linguaggio e diversi paradigmi di programmazione, ma a parità di linguaggio utilizzato?
Esistono davvero molti modi per scrivere codice, ovvero differenti stili di programmazione o in realtà per scrivere del buon codice che sia robusto e riutilizzabile, ne esiste uno solo?
A voi la palla!

12 Risposte

  • Re: La programmazione è creativa?

    Esistono molti modi di fare tutto ... per la programmazione e i programmi, ci sono quelli funzionano/non funzionano, quelli che funzionano meglio/peggio, quelli più leggibili/non leggibili ... è un mix di tante caratteristiche che fanno di un codice un "buon codice".

    Poi si può dire tutto e il contrario di tutto ...
  • Re: La programmazione è creativa?

    A quanto detto aggiungerei che, più che la stesura di un buon codice, che dovrebbe essere l'obiettivo di ogni buon programmatore, può essere creativo il modo con il quale si affronta un progetto e la soluzione adottata. Es. possono esserci 2 software che fanno più o meno le stesse cose ma magari uno è più gradevole nell'uso, oppure adotta soluzioni che lo rendono più accattivante commercialmente.
    In questo caso la creatività del progettista è sicuramente importante (a volte si assiste anche ad eccessi di creatività )
  • Re: La programmazione è creativa?

    Dalla mia limitata esperienza scolastica ti posso dire che la programmazione è molto creativa, i commenti dei due utenti sopra racchiudono un po' tutta la spiegazione quasi tecnica, ma anche a livello personale la creatività è molto rilevante: puoi cercare sempre di approcciarti ad un problema in un modo differente, scegliere soluzioni diverse, rendere tutto più sofisticato o stravolgere semplicemente tutto con il solo desiderio di da al programma una propria impronta personale secondo la propria vena creativa!
  • Re: La programmazione è creativa?

    goiu ha scritto:


    ... stravolgere semplicemente tutto con il solo desiderio di da al programma una propria impronta personale secondo la propria vena creativa!
    Fino ad un certo punto ... un programma

    1) deve funzionare

    2) non può avere performance peggiori di quelle già ottenute

    altrimenti non si parla di "creatività" o "vena creativa" ...
  • Re: La programmazione è creativa?

    Esistono i linguaggi esoterici apposta per quello che intendevo!
  • Re: La programmazione è creativa?

    I linguaggi esoterici non c'entrano nulla con la questione.

    Si parlava comunque di codice robusto e riutilizzabile. Quelli sono per "divertimento" e non hanno alcuna utilità nel mondo reale della programmazione.
  • Re: La programmazione è creativa?

    Nella programmazione propriamente detta la creatività è presente in maniera assai limitata; la maggior parte di essa risiede nell'Ingegneria del Software e dunque nella progettazione del software, specie nelle fasi iniziali ed intermedie (la manutenzione di solito viene vista come noiosa).
  • Re: La programmazione è creativa?

    Dipende a che livello intendi la programmazione
    Un programma strutturato tipo quello per banche/assicurazioni/gestionale? no, per tradurre delle specifiche in linguaggio non serve avere creatività, anzi, i troppo creativi non sono ben visti, si parte dal principio che il computer è un cretino molto veloce che deve fare sempre le stesse operazioni.

    Se invece usciamo dal concetto di cretino molto veloce creatività e fantasia te ne serve molta per trovare soluzioni nuove, devi soprattutto osare, osare molto. Nella Silicon Valley i vari google, apple, vmware, skyhigh tanto per citarne alcuni, prediligono persone appena ventenni perché non condizionati da esperienze passate ed osano quando cercano nuove soluzioni.

    Visti certi risultati io aggiungerei qualcosa di più che creatività/fantasia/osare per pensare determinate soluzioni, ma questo è un altro discorso

    no, non pensavo all'alcol
  • Re: La programmazione è creativa?

    Amici,
    mi sembra che qualcuno di voi si sia lasciato prendere un po' la mano.
    La creatività è arte e l'arte non conosce regole. Non ammette regole di nessun tipo.
    Noi programmatori siamo costretti a rispettare anche la più piccola regola per la dichiarazione di una semplice variabile, quindi chi vogliamo prendere in giro?
    Sono d'accordo con voi su quanto detto per la progettazione di interfacce grafiche e magari per la scelta dei nomi dei metodi, ma per quanto mi riguarda la programmazione è unicamente una stesura di codice secondo rigidi paradigmi che tutto possono essere chiamati fuorché creativi.
    Naturalmente questa è solo la mia personale opinione.
  • Re: La programmazione è creativa?

    Sfida di creatività.

    Ad esempio nelle classi che seguono, esiste un modo per scriverle in maniera diversa, pur mantenendo gli stessi risultati?
    Naturalmente si dovrà mantenere la struttura di leggibilità su 3 classi distinte, oppure migliorarla, ma senza eccedere le 3 classi date.
    package com.fulviotarable;
    
    /**
     *
     * @author Fulvio
     */
    public class Calcolatrice {
    
         /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
    
            int operando1 = Operandi.getOp1();
            int operando2 = Operandi.getOp2();
            
            System.out.print("Alcune operazioni con i numeri ");
            System.out.print(operando1);
            System.out.print(" e ");
            System.out.print(operando2);       
            
            int somma;
            somma = Operazioni.getAdd(operando1, operando2);
            System.out.println("\nLa somma vale: " + somma);
            
            int differenza;
            differenza = Operazioni.getSub(operando1, operando2);
            System.out.println("La differenza vale: " + differenza);
            
            int moltiplicazione;
            moltiplicazione = Operazioni.getMul(operando1, operando2);
            System.out.println("La moltiplicazione vale: " + moltiplicazione);
        }    
    }
    package com.fulviotarable;
    
    /**
     *
     * @author Fulvio
     */
    public class Operazioni {
    
        public static int getAdd(int operando1, int operando2)
        {
            return operando1 + operando2;
        }
        
        public static int getSub(int operando1, int operando2)
        {
            return operando1 - operando2;
        }
        
        public static int getMul(int operando1, int operando2)
        {
            return operando1 * operando2;
        }    
    }
    package com.fulviotarable;
    
    /**
     *
     * @author Fulvio
     */
    public class Operandi {
        private static int Op1 = -8;
        private static int Op2 = 5;
        
        public static int getOp1(){ return Op1;}
        public static int getOp2(){ return Op2;}
    }
    
  • Re: La programmazione è creativa?

    fulviot66 ha scritto:


    Amici,
    mi sembra che qualcuno di voi si sia lasciato prendere un po' la mano.
    La creatività è arte e l'arte non conosce regole. Non ammette regole di nessun tipo.
    Noi programmatori siamo costretti a rispettare anche la più piccola regola per la dichiarazione di una semplice variabile, quindi chi vogliamo prendere in giro?
    Sono d'accordo con voi su quanto detto per la progettazione di interfacce grafiche e magari per la scelta dei nomi dei metodi, ma per quanto mi riguarda la programmazione è unicamente una stesura di codice secondo rigidi paradigmi che tutto possono essere chiamati fuorché creativi.
    Naturalmente questa è solo la mia personale opinione.
    Stai dicendo sciocchezze!

    1) la scrittura del codice e' lo STRUMENTO, NON LO SCOPO.
    2) gli strumenti VANNO USATI SECONDO LE REGOLE per cui sono stati pensati: un martello lo tieni per il manico, NON per la tesa, solo perche' vuoi essere creativo, e lo usi per inchiodare i chiodi, NON per martellarti le dita o acquistare il biglietto dell'autobus, giusto per essere creativo.

    Secondo la tua definizione, infatti, le opere di Michelangelo, realizzate con martello e scalpello, NON SONO OPERE perche' il martello e lo scalpello, per poter essere utilizzati, si devono tenere in un certo modo.

    3) la parte creativa e' legata a COME affronti e risolvi il problema, usando SPECIFICI strumenti che sono, un questo caso, la programmazione ad oggetti piuttosto che la programmazione logica o funzionale. Usare un linguaggio di programmazione o un'altro ha la stessa valenza dell'usare il martello e lo scalpello di una marca o di un'altra.

    NON E' come usi lo strumento, la parte creativa, ma CHE COSA CI SAI FARE sfruttando quello strumento.

    4) il programmatorie di basso profilo (senza nessuna semantica dispregiativa!) non ha ancora tutte le competenze per affrontare i problemi in modo SIGNIFICAMENTE creativo: al momento e' limitato dalle regole imposte dall'architettura generale del sistema.

    Potra' applicare maggior grado di creativita' quando sara' il responsabile dell'intera architettura.

    Comunque, anche Michelangelo aveva i sui adepti che completavano l'opera dopo che lui ne aveva abbozzato la struttura generale.
  • Re: La programmazione è creativa?

    Comunque, nell'esercizio che hai proposto personalmente toglierei sia la classe operandi che la classe operatori, dal momento che di fatto stai sommando costanti intere.
    Supponendo invece di avere oggetti complessi al posto degli interi, in java creerei un'interfaccia operando con i "metodi operatori" (che dipendono dal tipo di operando, per cui non ha senso metterli in una classe separata come hai fatto tu) e delle classi concrete che implementano tale interfaccia per tutti i tipi di operando che mi interessano; in c# o c++ invece, userei l'overloading degli operatori.
Devi accedere o registrarti per scrivere nel forum
12 risposte