in Software Development
for 20 Years
in Software Development for 20 Years
COST-EFFECTIVE
Maximize ROI with our cost-effective, high-quality outsourcing software development solutions.
TECH-SKILLS
Proficient in cutting-edge technologies, crafting tailored software solutions to match your business requirements.
EXPERIENCE
Leverage our two decades of experience in software outsourcing for proven, results-oriented development methodologies.
EXPERTISE
As an award-winning offshore software development company, our team is diverse and well versed in a variety of expertise in software development outsourcing. We are up-to-date with the cutting- edge technologies and best software development practices.
FINTECH
Develop a wide range of applications in financial industries.
business
Provide inclusive services from system development to maintenance.
medical
Have notable experience in developing applications in medical field..
website
Many achievement in application development, system by CMS and built website campaign combined with SNS.
mobile
Develop mobile applications with beautiful UI on several platforms.
middleware &
embedded
Middleware development basing on Android, and embedded software development and porting.
protocol &
communication
Develop protocol stack such as WiMAX and WiFi. Control software development of Mobile Phone Base Station.
CLOUD
INFRASTRUCTURE
Robust, scalable, and secure architectures that leverage cutting-edge technologies for optimal performance and efficiency.
FEATURED CONTENT
Celebrating Team Spirit at the JCCH Futsal Tournament
In November 2024, ISB Vietnam company (IVC) had the privilege of participating in the annual Futsal tournament organized by the Japan Chamber of Commerce and Industry in Ho Chi Minh City (JCCH). This event has become a highly anticipated occasion, eagerly awaited by our football club players and enthusiastic supporters across the company.
Despite the early start on that day, both our players and cheering squad showed up bright and early, brimming with energy and excitement.
Immediately after the brief opening ceremony, the stadium heated up with matches. The football field became a vibrant stage where teamwork and determination were vividly on display. It was a remarkable setting to witness the unbreakable bond and fiery passion of our team.
With relentless team spirit and the unwavering support of our fans, our team advanced through the group stage, scoring over 10 fantastic goals. Each goal showcased the exceptional skill and dedication of our players, making every match a thrilling experience for both the team players and supporters.
The day was undoubtedly a resounding success, filled with exciting moments and unforgettable memories. Our team played with our hearts, fueled by a shared love for football. Beyond the excitement of the matches, this event strengthened our team spirit, enhancing cooperative relationships that help us collaborate effectively in daily work.
Congratulations to our incredible team for achieving goals and delivering an outstanding performance. A heartfelt thank you goes to all the supporters who cheered tirelessly and to the event organizers for creating such a meaningful opportunity for us to come together through sports. Special thanks as well to our company’s board of directors for enabling us to take part in this enriching event.
Let’s relive the highlights of this unforgettable day through some snapshots below. We look forward to next year’s tournament and another chance to play, cheer, and celebrate as one united team!
A Heartwarming Journey Back to SOS Children's Village Go Vap
In December 2024, we had the privilege of revisiting SOS Children's Village Go Vap for a heartwarming charity trip. This visit was more than just an act of giving; it was an opportunity to reconnect, reflect, and witness the positive changes in the lives of the children we care so much about.
As we arrived, we were greeted with smiles that seemed even brighter than before. The children—many of whom we had met on previous visits—looked more grown-up, their eyes shining with joy and hope. Their enthusiasm was contagious, and it was clear that the nurturing environment of SOS Village continued to play a significant role in their development.
Throughout the day, we engaged in meaningful conversations, funny games, shared laughter, and created new memories with the children. Their stories of growth and determination left a lasting impression on us all. It was inspiring to see how much they had achieved in such a short time, thanks to the dedicated care of their SOS mothers and the supportive community around them.
This successful charity trip would not have been possible without the unwavering support of our company’s leadership and our incredible team members. A heartfelt thank you to the management for prioritizing this initiative and ensuring every detail was thoughtfully planned. To our colleagues who contributed time, resources, and effort—your generosity and kindness made this journey truly special. Together, we brought not only material gifts but also the invaluable gift of connection and compassion.
As we left the village, we carried with us a renewed sense of purpose and a commitment to continue supporting these children and their dreams. The visit reminded us of the profound impact we can make when we come together to care for those in need.
Here’s to many more opportunities to spread love and kindness. Thank you once again to everyone who made this day possible. Let’s keep the spirit of giving alive as we look forward to a brighter future for all.
Most popular programming languages in 2024
As 2024 comes to an end it is time to look back at an eventful year in the IT landscape. AI is again writing headlines together with other cutting-edge technologies such as cybersecurity and cloud infrastructure. Following these technology trends, there has also been a shift in popular programming languages.
For example, the widely recognized ChatGPT—now virtually synonymous with AI—was primarily developed using Python. This close relationship between programming language popularity and technology trends underscores why it’s essential to monitor which languages are thriving.
To provide a clearer picture, we will in this article share valuable insights from the TIOBE Index, which publishes data on the popularity of programming languages, and why this website is relevant to follow for the latest programming trends in 2024.
The TIOBE Index
In this section, we will give a short introduction to the TIOBE Index published by TIOBE Software once a month. The index shows the most popular programming languages month by month and has received great acknowledgment from tech communities.
By measuring a given language’s presence across a variety of search engines and technology resources.
In other words, the TIOBE Index tracks the frequency and visibility of each language online. As a result, it offers an objective snapshot of how widely used, referenced, and discussed these languages are worldwide. This makes it an invaluable resource for developers, learners, and businesses evaluating which languages to adopt or invest in.
How the TIOBE Index Is Defined
The TIOBE Index evaluates popularity primarily through the number of search hits related to a particular programming language. Data is aggregated from about 25 authoritative sources, including major search engines and platforms like Google, Wikipedia, Bing, Microsoft, SharePoint, eBay, and Amazon.
By using search hits as a proxy for visibility, the index effectively benchmarks how much attention and usage each programming language garners. Keep in mind that the TIOBE Index isn’t a direct measure of a language’s technical superiority or quality. Rather, it reflects factors such as market trends, developer interest, educational resources, and the availability of vendor support and training.
Moreover, the methodology behind the TIOBE Index is standardized and consistently applied every month. This systematic approach helps track changes in programming language popularity over time. It offers a clear view of the evolving developer ecosystem, showing where the market is today and where it might go in the future.
2024 Programming Language Popularity Ranking
Now, let’s dive into the latest data from the TIOBE Index to explore the most popular programming languages as of December 2024. Before presenting the full top 50 list, let’s take a closer look at the top 10 contenders in the program language ranking.
At the forefront, Python, in first place, stands as the dominant leader with the highest popularity. As of December 2024, Python leads with a 23.84% rating, far ahead of second-place C++ at 10.82%. Python's dominance stems from its key role in AI, machine learning, and data science, along with its use in web development, automation, and infrastructure management. Its versatility has made it an industry standard.
C++, in second place, maintains a steady rating above 10%. Its enduring popularity comes from its unmatched performance capabilities—essential for system-level development, game engines, and embedded systems. Meanwhile, Java (9.72%) and C (9.10%), occupying the third and fourth spots respectively, remain fundamental workhorses in enterprise systems and mission-critical embedded environments. Their longstanding presence reflects stable, long-term demand across numerous industrial sectors.
In fifth place, C# (4.87%) retains support due to its integration with the .NET ecosystem, Azure services, and game development platforms like Unity. JavaScript (4.61%) stands firmly in sixth place, underscoring its role as the go-to language for front-end web development. With the support of TypeScript and other modern frameworks, JavaScript’s influence shows no signs of waning.
Go (2.17%), ranked seventh, continues to gain traction as a core language for cloud-native services and microservice architectures, leveraging efficient concurrency and a lightweight runtime. SQL (1.99%), in eighth place, remains an unshakable pillar of data-driven enterprises, powering databases and ensuring essential data operations. Visual Basic (1.96%) in ninth place, while older and more niche, still satisfies certain legacy system demands and specialized internal tools. Rounding out the top 10, Fortran (1.79%) persists as a hidden champion in scientific and high-performance computing (HPC) scenarios.
Overall, we see a landscape dominated by Python’s meteoric rise, stable performances from time-tested giants like C/C++/Java, and strong footholds for languages like Go and SQL that excel in specific domains. As we move into 2025, generative AI and cloud-native technologies are set to change which programming languages are most popular. It's important for businesses, developers, and learners to keep up with these trends to stay ahead.
Below is the list of the top 50 programming languages in the 2024 programming language popularity ranking.
2024 Programming Language Popularity Ranking TOP50
Ranking | Programming Language | Ratings |
1 | Python | 23.84% |
2 | C++ | 10.82% |
3 | Java | 9.72% |
4 | C | 9.10% |
5 | C# | 4.87% |
6 | JavaScript | 4.61% |
7 | Go | 2.17% |
8 | SQL | 1.99% |
9 | Visual Basic | 1.96% |
10 | Fortran | 1.79% |
11 | Delphi/Object Pascal | 1.44% |
12 | PHP | 1.39% |
13 | Scratch | 1.33% |
14 | Rust | 1.29% |
15 | MATLAB | 1.09% |
16 | R | 1.05% |
17 | Assembly language | 1.04% |
18 | Ruby | 1.03% |
19 | COBOL | 0.98% |
20 | Swift | 0.98% |
21 | Lisp | 0.97% |
22 | Prolog | 0.90% |
23 | Kotlin | 0.82% |
24 | Ada | 0.72% |
25 | Classic Visual Basic | 0.70% |
26 | Perl | 0.64% |
27 | Lua | 0.64% |
28 | SAS | 0.57% |
29 | (Visual) FoxPro | 0.57% |
30 | Haskell | 0.54% |
31 | Scala | 0.51% |
32 | Julia | 0.50% |
33 | Dart | 0.47% |
34 | VBScript | 0.41% |
35 | Objective-C | 0.38% |
36 | Transact-SQL | 0.37% |
37 | PowerShell | 0.37% |
38 | Bash | 0.33% |
39 | PL/SQL | 0.27% |
40 | D | 0.21% |
41 | Solidity | 0.20% |
42 | TypeScript | 0.20% |
43 | GAMS | 0.20% |
44 | ABAP | 0.19% |
45 | Awk | 0.17% |
46 | X++ | 0.16% |
47 | RPG | 0.15% |
48 | Elixir | 0.15% |
49 | ML | 0.14% |
50 | Clojure | 0.14% |
2024 Monthly Trends in Programming Language Popularity
Next, let’s examine the monthly rating changes throughout 2024. The year’s TIOBEs index data suggests that programming language popularity evolved significantly along multiple dimensions—ranging from specialized niche demands to the steadfast stability of legacy languages. By analyzing these month-by-month trends, we gain deeper insights into how these languages adapted and surged in response to industry needs.
Programming Language | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
Python | 13.97% | 15.16% | 15.63% | 16.41% | 16.33% | 15.39% | 16.12% | 18.04% | 20.17% | 21.90% | 22.85% | 23.84% |
C++ | 9.96% | 10.53% | 10.70% | 9.76% | 9.53% | 10.03% | 10.34% | 10.04% | 10.75% | 11.60% | 10.64% | 10.82% |
Java | 7.87% | 8.88% | 8.95% | 8.94% | 8.69% | 8.40% | 8.59% | 9.16% | 9.45% | 10.51% | 9.60% | 9.72% |
C | 11.44% | 10.97% | 11.17% | 10.21% | 9.98% | 9.23% | 9.48% | 9.17% | 8.89% | 8.38% | 9.01% | 9.10% |
C# | 7.16% | 7.53% | 7.54% | 6.77% | 6.49% | 6.65% | 6.72% | 6.39% | 6.08% | 5.62% | 4.98% | 4.87% |
JavaScript | 2.77% | 3.17% | 3.38% | 2.89% | 3.01% | 3.32% | 3.79% | 3.91% | 3.92% | 3.54% | 3.71% | 4.61% |
Go | 1.38% | 1.73% | 1.56% | 1.85% | 1.60% | 1.93% | 2.19% | 2.03% | 2.35% | 2.02% | 2.35% | 2.17% |
SQL | 1.46% | 1.82% | 1.92% | 1.61% | 1.44% | 1.75% | 2.04% | 2.21% | 1.94% | 1.64% | 1.94% | 1.99% |
Visual Basic | 1.60% | 1.52% | 1.42% | 1.70% | 2.01% | 1.66% | 2.08% | 2.18% | 2.70% | 2.35% | 1.95% | 1.96% |
Fortran | 1.09% | 1.40% | 1.22% | 1.47% | 1.24% | 1.53% | 2.05% | 1.79% | 1.78% | 1.80% | 1.97% | 1.79% |
Python: Dominating AI & Data Science
Python’s ascent in 2024 is nothing short of extraordinary. From 13.97% in January to 23.84% in December, the language saw a roughly 10-point surge. Backed by a powerful ecosystem of machine learning frameworks, large language models (LLMs), and comprehensive libraries, Python’s role in AI, data science, and cloud-based development positioned it as the undisputed market leader. Its extensive toolkit, ease of learning, and productivity gains create a virtuous cycle that further cements its standing atop the program language ranking.
C++, Java, and C: Evolving Foundations
Occupying the tier right behind Python, C++ (10.82%), Java (9.72%), and C (9.10%) maintained their prominence in 2024. C++ enjoyed stable demand in performance-critical areas such as systems software and embedded development. Java preserved its reputation as a trusted enterprise workhorse, adapting to cloud-native and microservices architectures and reliably holding its share in the high single digits. While C’s share dipped slightly, it remains indispensable for operating systems, firmware, and other low-level applications.
C# and JavaScript: Specialized Ecosystems and Mixed Fortunes
C# dropped from 7.16% to 4.87% over the year, facing competition from Python and rising languages like JavaScript, though it remains important in enterprise software and game development. JavaScript, meanwhile, ended the year strong at 4.61%.
With web applications only growing more complex, JavaScript remains a cornerstone of front-end development. Its synergy with TypeScript and modern frameworks ensures it retains a central role in shaping the user experience on the web.
Overall, the TIOBE Index in 2024 highlights a dynamic, multifaceted ecosystem where established players, emerging challengers, and specialized solutions coexist. From the unstoppable rise of Python to the steady core of C/C++/Java and the evolving fortunes of languages like C# and JavaScript, this year’s data offers a revealing snapshot of the most popular programming languages and the forces that drive their continued transformation.
Conclusion
In this article, we have explored the latest rankings of programming language popularity as of December 2024, drawing on data from the TIOBE Index. We also examined how these rankings and ratings shifted throughout the year. Summarizing 2024’s trends, it’s clear that Python—empowered by the surging AI and data science revolution—has emerged as the undisputed “ace” language of this era.
Looking back on the entire year, we see a landscape marked by Python’s dramatic surge, the steady resilience of legacy languages like C, C++, and Java, and the evolving roles of languages like C#, JavaScript, Go, and SQL.
This dynamic environment reflects an industry continually adapting to the demands of AI, cloud-native architectures, and specialized domains.
Heading into 2025, the programming landscape continues to evolve, with Python maintaining its dominance, C# facing pressure from competitors, and languages like JavaScript and Go gaining traction. By staying informed on these trends, developers, enterprises, and learners can adapt to shifts in technology and remain ready for the next wave of innovations.
About ISB VIETNAM
At ISB Vietnam (IVC), we praise the fast-changing programming trends and understand the importance of partnering with a trustworthy company that understands the evolving tech landscape and has needed expertise to navigate through it. As a leading software development and offshore services provider, we specialize in delivering high-quality and cost-efficient solutions for our partners for the past 20 years.
For any inquiries related to IT Outsourcing Solutions, we are the right partner.
Don’t hesitate to contact us to discuss how we can work together to make your project a success.
CakePHP 4: How to implement authorization.
In the previous sections, I introduced how to create a login feature for a website developed based on the CakePHP framework.
CakePHP 4: How to Create a Login Function.
CakePHP 4: How to Create a Token-Based Login Function.
In this article, I introduce how to implement authorization in an application using the CakePHP framework by utilizing the Authorization plugin.
1, Installation
We install the plugin with composer using the command below:
php composer.phar require "cakephp/authorization:^2.0"
The Authorization plugin integrates with the CakePHP application as both a middleware layer and a component to easily check authorization. In src/Application.php
, implement the AuthorizationServiceProviderInterface
interface and implement the getAuthorizationService()
function as shown below.
class Application extends BaseApplication implements AuthenticationServiceProviderInterface, AuthorizationServiceProviderInterface
{
/**
* getAuthenticationService
* @param ServerRequestInterface $request
*/
public function getAuthorizationService(ServerRequestInterface $request): AuthorizationServiceInterface
{
$resolver = new OrmResolver();
return new AuthorizationService($resolver);
}
}
In the bootstrap() function, add the plugin as shown below:
/**
* Load all the application configuration and bootstrap logic.
*
* @return void
*/
public function bootstrap(): void
{
// Call parent to load bootstrap from files.
parent::bootstrap();
// …
// Load more plugins here
$this->addPlugin('Authentication');
$this->addPlugin('Authorization');
}
In the middleware()
function, add the AuthorizationMiddleware
.
/**
* Setup the middleware queue your application will use.
*
* @param \Cake\Http\MiddlewareQueue $middlewareQueue The middleware queue to setup.
* @return \Cake\Http\MiddlewareQueue The updated middleware queue.
*/
public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue
{
$middlewareQueue
// …
->add(new BodyParserMiddleware())
->add(new AuthenticationMiddleware($this))
->add(new AuthorizationMiddleware($this));
return $middlewareQueue;
}
In src/Controller/AppController.php
, load the Authorization
component in the initialize()
function.
class AppController extends Controller
{
/**
* Initialization hook method.
*
* Use this method to add common initialization code like loading components.
*
* e.g. `$this->loadComponent('FormProtection');`
*
* @return void
*/
public function initialize(): void
{
parent::initialize();
// …
$this->loadComponent('Authentication.Authentication');
$this->loadComponent('Authorization.Authorization', [
'skipAuthorization' => [
'login','webLogin', 'logout' // functions do not need to check authorization.
]
]);
}
}
2, Policies.
Policies are classes that resolve permissions for a given object. These classes will be stored in the src/Policy
directory. We can generate a policy class for an entity or table using CakePHP's bake.
# Create an entity policy
bin/cake bake policy --type entity Article
# Create a table policy
bin/cake bake policy --type table Articles
3, Implement.
In this article, I will implement API authorization requirements in the table below using policy.
Title | endpoints | remark |
Update an Article (PUT) | /api/articles/{id}.json | Can only be used by authenticated article writer users. |
See like count on an article(GET) | /api/articles/{article_id}/likes.json | All users can see like count on an article. |
For the API Update an Article (PUT), can only be used by authenticated article writer users. We check if the logged-in user is the owner of the article to determine the edit permissions.
class ArticlePolicy
{
// …
/**
* Check if $user can edit Article
*
* @param \Authorization\IdentityInterface $user The user.
* @param \App\Model\Entity\Article $article
* @return bool
*/
public function canEdit(IdentityInterface $user, Article $article): Result
{
$isAuthor = $this->isAuthor($user, $article);
if ($isAuthor) {
return new Result(true);
}
return new Result(false, 'Permission denied');
}
protected function isAuthor(IdentityInterface $user, Article $article)
{
return $user->getIdentifier() === $article->user_id;
}
}
For the API See like count on an article(GET), all users can see like count on an article. In the LikePolicy class, the canView()
function returns true
so that all users can see the number of likes on the article.
/**
* Likes policy
*/
class LikesPolicy
{
/**
* Check if $user can view Likes
*
* @param \Authorization\IdentityInterface $user The user.
* @param \App\Model\Entity\Likes $likes
* @return bool
*/
public function canView(IdentityInterface $user, Likes $likes)
{
return true;
}
}
4, Testing.
For the API Update an Article (PUT), update the article with the user as the owner.
For the API Update an Article (PUT), update the article with a user who is not the owner. The expected result is that the article will not be updated.
For the API See like count on an article(GET), check with a user who is not logged in.
For the API See like count on an article(GET), check with a logged-in user who is not the owner.
You can find the complete source code at: https://github.com/ivc-phampbt/cakephp-authentication
Conclusion
I hope this article helps you understand how CakePHP integrates with the Authorization plugin to implement authorization and can be applied to projects related to CakePHP.
References
https://book.cakephp.org/authorization/2/en/index.html
https://www.rockersinfo.com/php-frameworks/cakephp-development-company/ [Image]