Partage
  • Partager sur Facebook
  • Partager sur Twitter

C++ où C# pour une application Instagram Like ?

Sujet résolu
    11 juin 2019 à 15:27:46

    Bonjour,

    Je me suis récemment lancé dans la réalisation d'une application Instagram-Like, et je me demandais quel serait le meilleur choix entre C# et C++ pour la réalisation d'une application comme ça.

    J'ai regardé sur le NET, et C++ semble quand même plus conforme à l'idée que j'ai dans ma tête, mais je préfère quand même me tourner vers les zéros pour avoir votre avis

    Bonne journée

    • Partager sur Facebook
    • Partager sur Twitter

    "I believe in two things. Discipline and the Bible." The Shawshank Redemption

      11 juin 2019 à 20:32:03

      Salut,

      Quel est ton niveau de programmation ? Tu débutes ou tu as déjà de l'expérience ?

      Ton application peut sans doute être faite avec les deux. De mon expérience, tu coderas plus vite en C# qu'en C++. C# est sans doute un langage plus facile à apprendre que le C++. Le C++ est un langage difficile à maîtriser et la bibliothèque standard est pauvre à coté de celle du C# :euh:. Si les performances sont vraiment importantes, le C++ est ton meilleur choix (à condition de déjà bien connaître le langage).

      Mon conseil : Prends celui que tu connais le mieux.

      Es-tu sûr de vouloir te lancer dans un tel projet ? C'est un projet sérieux ou juste à des fins d'apprentissage ?

      Bonne chance tout de même :D

      • Partager sur Facebook
      • Partager sur Twitter
        11 juin 2019 à 20:41:45

        Raynobrak a écrit:

        Salut,

        Quel est ton niveau de programmation ? Tu débutes ou tu as déjà de l'expérience ?

        Ton application peut sans doute être faite avec les deux. De mon expérience, tu coderas plus vite en C# qu'en C++. C# est sans doute un langage plus facile à apprendre que le C++. Le C++ est un langage difficile à maîtriser et la bibliothèque standard est pauvre à coté de celle du C# :euh:. Si les performances sont vraiment importantes, le C++ est ton meilleur choix (à condition de déjà bien connaître le langage).

        Mon conseil : Prends celui que tu connais le mieux.

        Es-tu sûr de vouloir te lancer dans un tel projet ? C'est un projet sérieux ou juste à des fins d'apprentissage ?

        Bonne chance tout de même :D

        Re, Merci pour ta réponse.

        Bah, premièrement, je dirais que j'ai quand même de l'expérience en programmation. Je connais bien Python, JS, HTML, CSS. Deuxièmement c'est un projet vraiment sérieux. La raison pour laquelle je suis venu ici, c'est que j'avais bien vu que C++ était un truc compliqué, mais que beaucoup de très bons softwares sont fait avec. Également, d'à ce que j'ai vu sur le net, C# a l'air bon que sur Windows, et partout ou je vais, il a l'air de se faire trashtalk, je m'en remet alors à la communauté ici.

        Merci, bonne journée

        • Partager sur Facebook
        • Partager sur Twitter

        "I believe in two things. Discipline and the Bible." The Shawshank Redemption

          12 juin 2019 à 11:51:31

          > il a l'air de se faire trashtalk, je m'en remet alors à la communauté ici.

          Vous vous en remettez à une communauté d'un langage d'un forum pour parler d'un autre langage, pauvre fou. o_O:euh::lol:

          Dans des projets "sérieux", on utilise plusieurs langages, en fonction des besoins.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            12 juin 2019 à 14:36:09

            bacelar a écrit:

             pauvre fou.

            Denis Brogniart - AH ft Khaled Freak (remix) - YouTube

            Non plus sérieusement c'est juste que puisque j'ai pas vraiment d'expérience pour combiner plusieurs langages ( Pas beaucoup d'expérience en général en fait ), je me suis dis qu'il faudrait peut-être y aller avec un seul choix mais si tu le dis.

            EDIT :

            Merci pour vos réponses. Après un peu plus de recherche sur le net, je viens de voir que le C++ se combine bien avec le C-Objectif, je pense que je vais me diriger vers ça.

            Bonne journée

            -
            Edité par bergiLeZÉR0 12 juin 2019 à 14:53:25

            • Partager sur Facebook
            • Partager sur Twitter

            "I believe in two things. Discipline and the Bible." The Shawshank Redemption

              12 juin 2019 à 16:02:06

              C-Objectif ???

              C'est juste MAC/iOS only.

              Si .NET, c'est fermé, que dire d'C-Objectif. :o

              Recherchez les frameworks qui permettent de faire votre "Instagram" like rapidement et utilisez l'un des langages de prédilection d'un ou plusieurs de ces framework (en utilisant de préférence l'un de ceux que vous connaissez ou proche).

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                12 juin 2019 à 16:39:02

                Salut,

                Vu que tu connais déjà Python, pourquoi ne pas rester sur Python ?

                • Partager sur Facebook
                • Partager sur Twitter
                Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                  12 juin 2019 à 18:08:06

                  hum, pour moi instagram c'est un réseau social de partage de photo, je ne l'utilise pas alors je sais pas trop à quoi ça ressemble. Mais il doit y avoir une partie client (web/appli mobile), une partie serveur, et une partie gestion de donnée, non ?

                  C'est sur quelle partie que tu hésites entre C++ et C# ?
                  Et pourquoi ne pas utiliser les technologies du web que tu connais déjà qui sont conçu justement pour ces besoins ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Dream on, Dream on, Dream until your dream comes true
                    12 juin 2019 à 18:14:40

                    romantik a écrit:

                    hum, pour moi instagram c'est un réseau social de partage de photo, je ne l'utilise pas alors je sais pas trop à quoi ça ressemble. Mais il doit y avoir une partie client (web/appli mobile), une partie serveur, et une partie gestion de donnée, non ?

                    C'est sur quelle partie que tu hésites entre C++ et C# ?
                    Et pourquoi ne pas utiliser les technologies du web que tu connais déjà qui sont conçu justement pour ces besoins ?


                    Bah je veux le faire en web mais j'aimerais aussi faire une version native

                    bacelar a écrit:

                    C-Objectif ???

                    C'est juste MAC/iOS only.

                    Si .NET, c'est fermé, que dire d'C-Objectif. :o

                    Recherchez les frameworks qui permettent de faire votre "Instagram" like rapidement et utilisez l'un des langages de prédilection d'un ou plusieurs de ces framework (en utilisant de préférence l'un de ceux que vous connaissez ou proche).


                    OK, j'avais bien vu que c'est que sur IOS... Sinon, je sais que ça devient plus hors sujet car je suis sur le forum C++, mais, est-ce que C pourrait être une bonne option ?

                    EDIT :

                    Merci encore pour tout vos réponses... Je pense que je vais y aller avec du C++ et C-Objectif pour IOS, et Java pour Android. Bonne journée

                    -
                    Edité par bergiLeZÉR0 12 juin 2019 à 18:20:48

                    • Partager sur Facebook
                    • Partager sur Twitter

                    "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                      13 juin 2019 à 11:03:12

                      Ouais, bof d'avoir 2 framework pour si peu.

                      Des truc comme .NET via Xamarin permet de ne développer qu'une version.

                      Quel avantage du natif veux-tu ? (Si tu ne peux pas répondre clairement à cette question, c'est que c'est totalement useless)

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        13 juin 2019 à 12:59:38

                        bacelar a écrit:

                            Des truc comme .NET via Xamarin permet de ne développer qu'une version.

                        J'ai bien vu ça, mais apparement ça cause des issus de performance et également l'application ( Encore je précise d'à ce que je vois sur le net ) développe des bugs plus facilement etc..

                        Ce que je cherche à avoir sur le natif c'est une excellente performance, et une application qui est durable. Mais encore, si l'avantage est la démarquation est pas si bonne, j'irai avec ça.

                        Comme je te dis, je ne m'y connais pas très bien dans le sujet, mon but premier était de trouver l'option qui pourrait procurer à la fois performance, durabilité, et qui ne prendra pas trop de temps...

                        • Partager sur Facebook
                        • Partager sur Twitter

                        "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                          13 juin 2019 à 17:37:01

                          > et qui ne prendra pas trop de temps...

                          Là, vous l'avez dans le baba.

                          Les performances, il faut au moins un POC pour justifier de ne pas prendre une technologie qui réduit au moins par 2 la charge de travail.

                          La "durabilité", c'est clairement plus maintenable d'avoir une solution que 2.

                          etc...

                          Il vaut mieux commencer par des solutions de prototyping/RAD pour pouvoir analyser concrètement les goulots d'étranglement (s'ils existent, ce qui est de plus rarement le cas).

                          L'architecture est bien plus pourvoyeuse de problème de performance qu'un langage X ou Y.

                          Faites un cahier des charges (dont l'aspect multi-plateforme doit apparaître).

                          Puis, vous faites une étude "bibliographique" des frameworks adaptés au projet et à vos connaissances.

                          Puis, évaluation de ceux-ci via des POC.

                          Puis, et uniquement après ces étapes on faites un choix "définitif".

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                            13 juin 2019 à 21:55:06

                            bacelar a écrit:

                            > et qui ne prendra pas trop de temps...

                            Là, vous l'avez dans le baba.

                            Les performances, il faut au moins un POC pour justifier de ne pas prendre une technologie qui réduit au moins par 2 la charge de travail.

                            La "durabilité", c'est clairement plus maintenable d'avoir une solution que 2.

                            etc...

                            Il vaut mieux commencer par des solutions de prototyping/RAD pour pouvoir analyser concrètement les goulots d'étranglement (s'ils existent, ce qui est de plus rarement le cas).

                            L'architecture est bien plus pourvoyeuse de problème de performance qu'un langage X ou Y.

                            Faites un cahier des charges (dont l'aspect multi-plateforme doit apparaître).

                            Puis, vous faites une étude "bibliographique" des frameworks adaptés au projet et à vos connaissances.

                            Puis, évaluation de ceux-ci via des POC.

                            Puis, et uniquement après ces étapes on faites un choix "définitif".

                            Merci beaucoup. Ça va beaucoup m'aider.

                            -
                            Edité par bergiLeZÉR0 13 juin 2019 à 21:55:23

                            • Partager sur Facebook
                            • Partager sur Twitter

                            "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                              12 juillet 2019 à 19:16:50

                              Pour avoir fait du webdev en c# et du c++ depuis un bon bout deja , je ne me risquerait pas a faire une application web en c++ ( meme si c'est possible ).
                              Pour du web , c# est super avec ASP/.NET.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 juillet 2019 à 13:06:37

                                Pareil que mes petits copains, le natif c'est intéressant seulement si on a de réels besoin en performances. Dans ton cas le gain en performance sera probablement tellement insignifiant, que au final tu vas galérer pour des clopinettes. Si tu vises Androïd/iOS, JAVA peut être un bon choix, c'est plutôt pérenne, les API sont relativement nombreuses, c'est très portable (tu as des JVM sur quasiment toutes les plateformes) et tu as pas mal de ressources disponibles (cours, tutoriels, documentations,...).

                                Pour la petite histoire je déteste JAVA, donc si je te le conseille, c'est vraiment parce que je pense que c'est une option viable pour le type de projet que tu veux entreprendre ;)

                                Pour ce qui est de C, là je te le déconseille fortement, C est un langage que je connais très bien et que j'aime beaucoup, mais il n'est clairement pas fait pour ça. Si tu pars sur du C, tu vas tellement galérer que tu n'arriveras probablement jamais au bout.

                                C++ je te le déconseille aussi, bien que ce soit mon langage de programmation favori. Les API disponibles sont généralement de très bas niveau, ce qui veut dire que tu vas avoir beaucoup de code à écrire, pour un gain de performances, qui sur le type d'application que tu vises sera probablement très faible (pour ne pas dire inexistant), en gros tu vas te faire chier pour rien ;)

                                -
                                Edité par int21h 15 juillet 2019 à 13:27:18

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                                  15 juillet 2019 à 14:20:11

                                  int21h a écrit:

                                  Pareil que mes petits copains, le natif c'est intéressant seulement si on a de réels besoin en performances.



                                  Je me permets de rebondir sur ce sujet.
                                  Bon au risque de paraitre un peu con, j'ai jamais vraiment capté ce qu'on appelait du "natif". Quelqu'un aurait une explication simple mais détaillée à la fois ^^ ?

                                  A+

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 juillet 2019 à 14:56:16

                                    Le natif c'est du code compilé spécifiquement pour la plateforme cible(C ou C++ par exemple). En théorie, tu exploites au mieux les capacités du hardware, le binaire produit est exécutable directement sur le processeur/OS cible. Les autres méthodes passent par des couches d'interprétation plus ou moins efficaces comme par exemple un interpréteur (Phyton par exemple) ou un machine virtuelle(C#, Java...). Théoriquement, le code compilé est plus rapide, parce qu'on ne passe pas par cette couche d'interprétation. Dans la réalité, c'est un peu moins vrai, tu as des technologies comme la compilation à la volée qui permettent de produire du code binaire quasiment équivalent à du code natif compilé, et avec le temps, les interpréteurs et les machines virtuelles ont été largement optimisés, ce qui fait que les performance des programmes qu'ils exécutent se rapprochent de plus en plus des performances du code natif.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                                    Anonyme
                                      15 juillet 2019 à 15:15:57

                                      À noter que si tu veux du JVM et Android, mais que tu n'aimes pas Java, il y a Kotlin, plus pratique, moins verbeux et tout aussi supporté par Google et Android Studio que Java.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 juillet 2019 à 15:18:39

                                        int21h a écrit:

                                        Les autres méthodes passent par des couches d'interprétation plus ou moins efficaces comme par exemple un interpréteur (Phyton par exemple) ou un machine virtuelle(C#, Java...)


                                        Si je comprends bien, C#, Java et Python ne peuvent pas être "traduit" en code natif tendit que le C et le C++ le peuvent ? Systématiquement ? Où cela dépend des cas ? Ceci est mon dernier message sur ce post, je n'ai pas envie de détourner ce topic. :D

                                        Merci.

                                        -
                                        Edité par Didy7 15 juillet 2019 à 15:20:42

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 juillet 2019 à 16:02:33

                                          Les compilateurs C/C++ (et les autres langages compilés) produisent du code natif, c'est à dire quelque chose qui est directement exécutable par le processeur sans aucune transformation. C# et Java produisent un langage machine intermédiaire (qu'on appelle le bytecode) qui est traduit par la machine virtuelle, enfin les langages interprétés comme Python utilisent un programme (L'interpréteur) qui traduit à la volée les instruction du programme en langage machine exécutable par le processeur.

                                          Dans l'absolu, n'importe quel langage de programmation peut être compilé ou interprété (par un interpréteur ou une machine virtuelle), c'est essentiellement une question de choix stratégique ou historique de la part des créateurs du langage. La compilation donne théoriquement quelque chose de plus léger et plus performant, l'interprété (ou le bytecode) est souvent beaucoup plus souple, chacun a ses avantages et ses inconvénients, le choix de l'un ou l'autre se fait essentiellement sur les avantages qu'on espère obtenir, si on veut de la performance, on va avoir tendance à choisir un langage compilé, si on veut de la souplesse, on préfèrera un langage interprété. La plupart du temps, l'analyse des besoins, va nous dire où on a besoin de performance et où on a besoin de souplesse, ce qui fait que dans les grosses applications, on utilise souvent plusieurs langages, du compilé pour les portions où les performances sont critiques et de l'interprété ou VM (ou web) là où les performances ne sont pas critiques et où on veut plus de souplesse. 

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                                            16 juillet 2019 à 10:55:12

                                            int21h a écrit:

                                            Les compilateurs C/C++ (et les autres langages compilés) produisent du code natif, c'est à dire quelque chose qui est directement exécutable par le processeur sans aucune transformation. C# et Java produisent un langage machine intermédiaire (qu'on appelle le bytecode) qui est traduit par la machine virtuelle, enfin les langages interprétés comme Python utilisent un programme (L'interpréteur) qui traduit à la volée les instruction du programme en langage machine exécutable par le processeur.

                                            Dans l'absolu, n'importe quel langage de programmation peut être compilé ou interprété (par un interpréteur ou une machine virtuelle), c'est essentiellement une question de choix stratégique ou historique de la part des créateurs du langage. La compilation donne théoriquement quelque chose de plus léger et plus performant, l'interprété (ou le bytecode) est souvent beaucoup plus souple, chacun a ses avantages et ses inconvénients, le choix de l'un ou l'autre se fait essentiellement sur les avantages qu'on espère obtenir, si on veut de la performance, on va avoir tendance à choisir un langage compilé, si on veut de la souplesse, on préfèrera un langage interprété. La plupart du temps, l'analyse des besoins, va nous dire où on a besoin de performance et où on a besoin de souplesse, ce qui fait que dans les grosses applications, on utilise souvent plusieurs langages, du compilé pour les portions où les performances sont critiques et de l'interprété ou VM (ou web) là où les performances ne sont pas critiques et où on veut plus de souplesse. 



                                            Merci pour cette réponse !
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              14 août 2019 à 14:55:30

                                              Juste une petite précision, .NET (C#, etc.) utilise un code binaire intermédiaire : l''IL, comme le byte-code de JAVA, mais contrairement à JAVA, ce code binaire n'a jamais été conçu pour être interprété par une machine virtuelle comme JAVA mais uniquement compilé (une fois avec NGEN, ou à chaque exécution en Just In Time Compilation).

                                              Résultat, on parle d'un byte-code en JAVA ciblant une JVM, sorte d'interpréteur que les concepteurs de JAVA, chez Sun, espéraient câbler directement dans le silicium (une puce JAVA dont le code natif serait le byte-code comme le code machine x86 est le code natif d'un exécutable qui tourne sur un CPU d'Intel, projet oublié dans les méandres de l'histoire de l'Informatique).

                                              Mais pour .NET, il n'y pas de machine virtuelle, mais juste un ensemble de Dll/modification de l'OS constituant un framework d'exécution que le compilateur .NET (JIT ou pas) utilise pour générer du code Natif. Il y a plusieurs implémentations de ce framework, en fonction de l'hôte en charge de l'exécution (l'OS Windows, MAC, ou même un programme hôte comme IIS ou SQL Server ou Excel).

                                              JAVA spécifie toujours une JVM dans les différentes versions du langage mais les implémentations des celles-ci utilisent massivement de la JIT compilation et plus de l'interprétation "ligne à ligne".

                                              Le résultat final donne des choses assez proches dans les grandes lignes mais un peu différent quand on regarde d'un peu plus près.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                                14 août 2019 à 16:02:19

                                                Je crois que tu dois te tourner vers un framework multiplateforme et très puissant:

                                                • sois IONIC avec tes connaissances html css et javascript.
                                                • ou un framework c++ comme Boden,il y'en plusieur...........

                                                PS:Je te conseille pas c#.

                                                J'ai eu le même problème, choisi c++ et fonce tu peux faire avec tout ce que tu veux des logiciels des jeux 3D avec unreal engine comme fortnite ou pubg pour moi c'est le meilleur langage :soleil:

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 août 2019 à 17:29:00

                                                  TahaSaouri9 a écrit:

                                                  Je crois que tu dois te tourner vers un framework multiplateforme et très puissant:

                                                  • sois IONIC avec tes connaissances html css et javascript.
                                                  • ou un framework c++ comme Boden,il y'en plusieur...........

                                                  PS:Je te conseille pas c#.

                                                  J'ai eu le même problème, choisi c++ et fonce tu peux faire avec tout ce que tu veux des logiciels des jeux 3D avec unreal engine comme fortnite ou pubg pour moi c'est le meilleur langage :soleil:


                                                  Ouais sauf que la il veut pas faire un jeu , mais faire un 'instagram-like' . Pour un jeu , les perfs sont critiques .. pas pour une application style instagram. Il va se faire chier pour rien avec c++ ... meme si 'c'est puissant et tu peux faire tout ce que tu veux'. Tu peux aussi visser une vis etoile avec un tourne-vis plat , mais ca sert pa a ca.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    16 août 2019 à 8:44:26

                                                    Pareil que Zérotisme, pas la peine de se faire chier avec c++ pour un instagram like, tu galéreras beaucoup moins avec des langages plus adaptés. Pour ce qui est des jeux 3D, il vaut mieux partir avec un moteur de jeu (Unreal Engine, Unity...) qu'avec c++, là le boulot est tellement énorme, que si tu pars avec c++ tu vas y passer ta vie, alors que si tu pars avec un moteur de jeu tu n'y passeras que quelques années...
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                                                      17 août 2019 à 17:10:52

                                                      Merci pour tout vos réponse notamment @int21h je vais mettre le sujet en résolu.

                                                      Bonne journée à tous

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                                                      C++ où C# pour une application Instagram Like ?

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                      • Editeur
                                                      • Markdown