dart-lang / language

Design of the Dart language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proposals to be able to perform data analysis and AI models using Dart

Ing-Brayan-Martinez opened this issue · comments

Introduction

Greetings, team, I wanted to take the opportunity to congratulate you on all the achievements announced at Google IO, I know that the road was not easy and you have been working overtime. It is already more than evident where Google is investing the budget. The news of the budget cut to the Dart team was very painful for me and no one likes to say goodbye. Now it's time to move on, that's why I will continue supporting them. That is why I am here, my proposals have not had the acceptance I expected because it must be more specific to where I want to go. I hope this time I can do it correctly.

In my first proposal, which was very controversial, I talked about how we can invest in a project with Google Colab so that Dart can be used for AI. Looking at the proposal, I was not very specific.

Then I made a second proposal to simplify some aspects of the first, but I was not successful either.

I am going to make a third attempt because what I am seeing in the market is going to make this more specific. If it is not understood, please ask a series of questions so as not to have an endless debate. I want to get to the point.

On the current status of Dart as a language for AI

The Dart team has already been moving in this direction with the incorporation of the google_generative_ai library. This has allowed an important advance that must be celebrated because now it will be possible to integrate Gemini into any application made with Flutter. That is perfect and I congratulate you.

The proposal

My proposal is to be able to create AI and Data Analysis using Dart in Google Colab, in the same way that Python does using Jupiter Notebook and now Kotlin using DataFrame, I recently discovered this tool.

How do we make this possible?

To achieve this proposal, the collaboration of several teams within Google is necessary because each one has the necessary pieces separately, we just have to unify our efforts.

  • We must collaborate with the Google Colab team because they already have the UI and the experience in this type of Notebook-based products, this will save time

  • We must collaborate with the Tensorflow team to optimize the version written in Dart language to be able to work on Google Colab

  • We must collaborate with the MediaPipe team to create a version written in Dart language that can work on Google Colab to make projects with this technology

  • The Dart team must collaborate to integrate this language into Google Colab. This will be possible due to the advances of the platform with the compilation to Wasm and good interoperability with C++

  • Furthermore, if it is possible to collaborate with the Google Chrome team to support an API that allows access to the NPU of the device using Wasm in Google IO, something was mentioned about this functionality that is perfect for the Google Colab platform to use AI locally

If all these teams agree to ensure that the Dart language can be used in Google Colab to analyze data or create an AI model, the future of the Dart language is promising because we will now have a variety of tools within the ecosystem, helping to meet the goal of making Dart a general-purpose language

What problem am I trying to solve?

I am going to describe it in several points:

  • Make Dart language usable by Data Scientists with the help of Google Colab

  • Make the Dart language general purpose because it can be used for different types of uses

  • Avoid the death or stagnation of the platform, bringing new developments that fit into the same vision of Google with the implementation of artificial intelligence

  • Expand and diversify the Dart language ecosystem

Because this is important

This is important because it will allow the Dart language to be updated to the AI era. Imagine the following use case:

Imagine that you want to found a small video game studio and you want to do it economically, quickly and simply with a single Dart technology, to achieve this you would have to have several teams.

  • You should have a team that allows you to develop a micro ERP to manage the study resources, which is typical for any company, for this you decide to use Flutter

  • A Landing Page should also be created for the company, for this it is also decided to use Flutter Web, for this Google must still optimize Google Web for SEO in Google Search

  • You should have a team to develop the video games, for this it is decided to use Flutter x Flame, this allows you to reuse the hired personnel because they could be alone making video games or frequently collaborate with the Micro ERP, this saves costs and makes better use of the experience. advantage of multiplatform is useful to save costs

  • You should also have a team of data scientists to create algorithms and AI models that can be implemented in the video games that the studio will be developing. This will allow you to have NPCs that can move autonomously around the world of the video game. Another important use is to use an AI model that is implemented in the Micro ERP that allows calculating the best way to optimize costs to implement this, Google Colab should be used which will support the Dart language to create AI models at this point many of the team from the video game studio could collaborate with data scientists since they all master the same technology (Dart), generating a good work environment

  • Of course, DevOps cannot be missing to help manage Google Cloud Platform and Firebase

  • We must also think about the rest of the people who contribute to the projects developed by the studio such as: Designers, Administrators, Community Manager, etc.

As you can see, I am describing a possible entrepreneurship model that could be used by a company that makes the decision to trust Dart as its main technology. Our job will be to provide tools to create these business models that are the guarantee for the survival of the Dart language ecosystem. We must go. step by step to achieve this goal

About AI-PCs



Everything indicates that the future of the personal computer will be to use processors with NPU and it is necessary to adapt to new times and optimize the Dart language to create applications that take advantage of all this new hardware.



Microsoft understood this and is working to adapt C# for these purposes. More details about this in the Presentation of the new Surface to make AI work on any device.

Apple will soon announce its entire technological stack made with Swift to run AI on the devices created by Apple integrated into its ecosystem, they are already quite advanced



Google together with Jetbrains already has several tools made in Kotlin so that Android can develop applications with AI

Now we need to adapt Dart within Google Colab to be able to create AI models using Dart. When they are already trained, they can be used within a Flutter application. This model seeks to allow the creation of new companies with our technologies, we will be moving in the right direction.

Conclusions 



Now Google is an “AI First” company, right now it is investing a lot in Gemini and Google DeepMind, we must evolve in the same direction. This proposal seeks to give a possibility for Dart to be usable by Data Scientists.

If this is possible, companies can be created with a single programming language, that is, Dart, so that this platform is more accepted by the business world. This will help ensure the survival of the platform.



My proposals can be difficult to interpret. I hope to be specific. Please ask. I want to receive criticism in order to improve. I think this video will be the answer I am looking for.

@Ing-Brayan-Martinez As you have been told multiple times, this is the Dart Language Specification Issue Tracker and not some kind of discussion forum for the overall high-level direction of where the Dart programming language should be applied.

Please provide concrete specific language features that you want to be added/changed to the language itself. If no such thing are being suggested, it is best to close this issue and move the discussion to one or more of the community channels like e.g. Reddit: https://dart.dev/community

I also very much disagree with the overall premise or your issue and your suggested plans, but I will not spend time commenting on that since this is not the right forum for such discussions.

If this were a stack overflow question I would vote to close with needs more focus because it is absolutely not clear what parts of the Dart language should be changed for what you envision Dart to be used in the future.

I will repeat what I have said before:

I really encourage you to understand that this is the wrong place for these. Maybe you could create a blog and post these there.

I think we are at the point where I have to explicitly ask you to stop posting such "proposals".