From the blog

5 Signs You Should Invest in The Best JavaScript Libraries

Companies now strive to be easily accessible to their clients in 2022. As a result, web-based solutions to broaden enterprises’ reach are abundant in the consumer market. JavaScript has been around for more than two decades, has amazed, captivated, and persuaded the developer community. In addition, it includes the most excellent JavaScript libraries for enhancing performance. As with JavaScript, some have expressed their dislike for dynamically typed languages. However, you can’t go wrong by learning JavaScript, despite all the conflicting viewpoints out there. Even though the language is old and has some weird ways of getting the work done, it is being used more frequently than ever before. In today’s competitive industry, being the first to market is a distinct advantage that has no equal. Because of this, businesses want a technology stack with a strong developer community and a reputation for efficiency and effectiveness. It also features the most excellent JavaScript libraries for enhancing performance.  To better meet the needs of their customers, they can offer new items more quickly thanks to this. These pre-written JS code files, which are available to everyone on the internet, speed up creating websites and web-based apps. Now let’s dive into the best javascript libraries. What Are the Best Frameworks To Familiarize Yourself? Vue.js ExtJS Ember JS Aurelia Angular React What Are the Signs Indicating That You Need To Invest In Better Js Libraries? 1. How Does The Documentation and Extensive Developer Community Benefits You? You’ll have access to a wide range of information that will aid in your understanding of the code’s structure. What’s the point of spending numerous hours developing something that can be found already done? As a result, all you need to do is consult the library’s documentation, and you’re ready to go. Developers may easily get in touch with the JS library’s large online community. As a result, you’re not on your own in the process of building a project. When you are stuck on anything, you may use your network to connect, contribute, and find a solution. 2. How Significantly Can the Turnaround Time Be Impacted? In addition to having a faster turnaround time for websites, the entire code developed must be more efficient as well. It’s a quick, efficient code that helps the page load faster thanks to JavaScript libraries. Many JS libraries like React JS, for example, are well-liked for their role in speeding up web pages and web applications. 3. Are These Budget-Friendly? There is no need for small enterprises and startups to go beyond their budgetary limits. They may choose not to hire high-potential developers in order to manage programming costs. Because the website development project may be taken up by even the most basic of resources at an early stage. 4. Do These Libraries Have Consistent User Experience? Clients don’t browse through your code, but when they visit your website, they see and experience your finished solution in one go. Consistency does not mean that customers are dissatisfied with the back-end functionality of the product. They are concerned with the speed at which data is retrieved, with the functionality of the pages, and with the overall insight provided by the site. As a result, customers are more likely to return to the site if they have a positive customer experience. This also […]

Read More

Is Java Dead? What Is the Best Alternative?

Java was developed by Sun Microsystems and was later acquired by Oracle in 1995. According to its Wikipedia page, “Java is a high-level, class-based, object-oriented programming language, designed to have as few implementation dependencies as possible.” Although it has been one of the most widely used programming languages over the years, there have been many questions and discussions surrounding java’s viability to date, not just for development on windows but in a more general sense too. There are countless discussions such as; Is Java dead? Is it now a language of the past? Should we now look elsewhere for development tools and if we do, what are the best alternatives to Java? Is Java Really Dead? When Java was first introduced in 1995, it was the ‘real deal’. Java songs were sung all across the programming world. Sun Microsystems was giving off Microsoft vibes, and James Gossling (original java developer at Suns) was the kingpin of Silicon Valley. So, what has changed? Java is an established programming language with many use cases. However, while there’s much debate around whether it is declining or not, it is certainly not growing at any real pace. When you consider that this is a constantly evolving industry, you begin to notice that java is living in the past.  If you take a look at the TIOBE index, you’ll discover that Java has been on a steady decline glide slope since 2016. In fact, between May 2016 to May 2017, the Java programming language declined by 6% in ratings. Moreover, in the latest index rating, java has dropped from the number one spot to number three in the last five years; Considering its very large community, that says a lot.  Did Google really kill Java? What’s more, when Google dropped support for NPAPI (Netscape Plugin Application Programming Interface) from its 2015 Chrome browser releases this put a serious downward pressure on Java’s adoption and started a negative inflection point. NPAPI is an API which the Java plugin for web browsers relies on. In September 2013, Google announced that it would be phasing out support for the NPAPI for many reasons, some of which were security and browser speed-related. At this point, the developer community was anxious about how Oracle would respond. Instead of providing a more secure Java experience Oracle recommended that users looking to access Java applications via browsers should drop Chrome for Internet Explorer or Safari. Objectively, this was not a reassuring experience for Java programmers especially since the choice of Java was often influenced by the much-touted concept of Java being able to run ‘anywhere’ and now the official guidance seemed to be saying “runs anywhere, as long as it’s not the most popular web browser in the World“. Is Java the COBOL of the online programming world? A few years ago, it was common to see Java referred to as “the new COBOL,” a language whose relevance lies in maintaining clunky legacy corporate in-house systems. Like COBOL, Java is a good language for its time; however, there are better ones. Some of which have emerged over the years to become very relevant and keep pace with the changes and modernization of hardware and operating system advances. Although there’ve been numerous Java updates – and a quite confusing array of Java variants […]

Read More

Delphi Versus Electron Benchmarking Study – Metric 2/26 – UI Design Approach

When businesses choose a software framework they begin a long-term relationship for the duration of their application’s lifecycle. Given the strategic consequences of this decision, businesses must carefully consider how frameworks enhance developer productivity, business functionality,application flexibility, product performance, the long-term viability of that framework, and the inherent security in each framework’s design and technology. The ideal framework demonstrates strength in each category by minimizing product time-to-market, reducing maintenance costs, supporting product variety, and facilitating a superior customer experience. The “Discovering The Best Cross-Platform Framework Through Benchmarking” whitepaper evaluates two frameworks supporting multi-platform desktop application development: Delphi and Electron. This is the second in a series of blog posts looking more closely at each of the 26 individual metrics used in the study, and how Delphi and Electron each fared on these metrics. The first can be found here. Download the complete whitepaper here Benchmark Category: Developer Productivity Developer productivity is the measure of effort and code required for developers to complete typical development tasks. Productivity directly impacts product time-to-market and long-term labor costs so tools that increase developer productivity have substantial impacts on business timelines and bottom lines. Productivity can be realized in two distinct ways – reduced coding requirements due to native libraries, and IDE tools like code-completion and visual design.IDEs with greater library breadth generally result in fewer lines of code per application and produce a clean, lean codebase that minimizes opportunities for bugs or maintenance problems later in the product life cycle. Benchmark Metric 1/26: UI Design Approach UI Design Approach Metric: Does the framework’s IDE allow for graphical/visual application creation and provide a “What You See Is What You Get” (WYSIWYG) view model?11 IDEs that support development through “drag and drop” components or other visual methods allow users to engage different methods of thought and creativity as they work. Visual creation through WYSIWYG editors preclude businesses from needing every version of physical hardware to view platform-native styling. Benchmarking Results Delphi Score: 5 (out of 5) Delphi’s RAD Studio IDE offers a What-You-See-Is-What-You-Get (WYSIWYG) design experience with drag-and-drop components for visual GUI design. The designed GUI can be viewed using native Android/iOS/Windows/macOS styling or custom styles and can simulate application appearances within mobile devices of varying screen sizes. Components can also be resized and have their properties adjusted in the Object Inspector without touching code, allowing rapid prototyping through visual development. Delphi also offers the ability for a developer to edit the UI using a simple YAML style language definition. Electron Score: 3 (out of 5) Electron lacks a native IDE but can be developed using text editors and command line tools, Electron doesn’t include a WYSIWYG design experience or drag-and-drop components by default. The UI can be created using HTML5 and CSS styling. Unless the developer chooses an IDE like Visual Studio, Electron applications must be compiled and run to view the project’s GUI. Download the complete whitepaper here

Read More

Alister Christie And Serge Pilko Talk Delphi, Part 1 of 3: Career Beginnings With Delphi

In the world of Delphi, Alister Christie needs no introduction. He is the author of the legendary “Code Faster in Delphi”, and the creator of hundreds of videos that showed many of today’s Delphi developers around the world how to program and accomplish things with Delphi.  Download Code Faster in Delphi for free here Alister also has an upcoming book, “Code Better in Delphi”, scheduled to hit bookstores soon. In the video at the base of this post, Alister has a conversation with Serge Pilko, an equally accomplished Embarcadero MVP and founder of Softacom, a world leading Delphi software development services and software solutions provider. Serge interviews Alister about his career beginnings and first contact with Delphi, and discovers how Alister became a household name among Delphi fans with his educational books and videos through LearnDelphi.tv In this first of a three-part blog series we have published the first part of Alister’s interview with Serge. The next two parts of the interview will be published in the coming weeks as we approach Delphi’s 27th anniversary. To watch the entire video of Serge’s Pilko’s conversation with Alister, scroll to the base of this post. Alister Christie And Serge Bilko Talk Delphi, Part 1 of 3 Serge Pilko Hello everyone. Today I have a guest, Alister Christie. I think you know this guy, because if you are a Delphi developer, for sure you saw his short and very useful videos about Delphi development. Hi Alister.. Alister Christie Hi… Serge Just a couple of words about today’s… let’s say event. In this media we are talking to Alister, as I already said a developer and Embarcadero MVP. Let’s say that today it will be an MVP-to-MVP talk. And of course, Allister is Embarcadero MVP, tutor and speaker on different events about Delphi. And of course he has his famous YouTube channel. I think it’s one of the leading places where developers can watch and get different useful information for them. And of course, learn Delphi programming and development. In this video we are not going to discuss deep tech stuff because we don’t have the time and this is not the goal of this video. In this video we’ll discuss our and Allister’s professional way and where he’s getting his passion, how he’s creating his videos. How is it? Because I think it’s very interesting for our audience. Is it okay for you Allister? Alister Absolutely, yeah. Serge So in this case, my first question to you before we start our plan is “how do you think, where is Delphi today? What do you think? What’s the future? What’s the current status, and do you have any thoughts about this? Alister I think things are looking pretty good for Delphi at the moment. I was a bit worried initially when Idera first acquired Embarcadero, they seem to make some pretty fast decisions on, you know, what staff they wanted to keep and that kind of stuff. And what have you. But I think they’ve kind of realized that Delphi’s pretty good and are putting investment in R and D and all that kind of stuff into it now, which is, is that all very positive? So I think, yeah, in terms of the health of Delphi it’s pretty good. Yeah, a few people […]

Read More

Delphi Versus Electron Benchmarking Study – Metric 1/26 – Development Time

When businesses choose a software framework they begin a long-term relationship for the duration of their application’s lifecycle. Given the strategic consequences of this decision, businesses must carefully consider how frameworks enhance developer productivity, business functionality,application flexibility, product performance, the long-term viability of that framework, and the inherent security in each framework’s design and technology. The ideal framework demonstrates strength in each category by minimizing product time-to-market, reducing maintenance costs, supporting product variety, and facilitating a superior customer experience. The “Discovering The Best Cross-Platform Framework Through Benchmarking” whitepaper evaluates two frameworks supporting multi-platform desktop application development: Delphi and Electron. This is the first in a series of blog posts looking more closely at each of the 26 individual metrics used in the study, and how Delphi and Electron each fared on these metrics. Download the complete whitepaper here: Benchmark Category: Productivity Benchmark Metric 1/26: Development Time Developer productivity is the measure of effort and code required for developers to complete typical development tasks. Productivity directly impacts product time-to-market and long-term labor costs so tools that increase developer productivity have substantial impacts on business timelines and bottom lines. Productivity can be realized in two distinct ways – reduced coding requirements due to native libraries, and IDE tools like code-completion and visual design.IDEs with greater library breadth generally result in fewer lines of code per application and produce a clean, lean codebase that minimizes opportunities for bugs or maintenance problems later in the product life cycle. Development Time Metric: Total hours spent writing the fully functional application from scratch. This measurement assesses the value a framework’s productivity tools add to an average developer with no prior task knowledge. Comprehensive documentation, plentiful native libraries, code completion, and other IDE tools will allow the developer to design and build the benchmark application more efficiently than would be the case in a “standard” text editor. Delphi Score: 3 (out of 5) One expert Delphi developer completed the Unicode Reader in 23.3 hours using the RAD Studio IDE. Application modification with internal tests took 8.33 hours for a total development time of 31.63 hours. Five other Delphi developers gave estimates for the original application ranging from 24 to 50 hours, averaging 38.8 hours. Electron Score: 5 (out of 5) One expert Electron developer completed the Unicode Reader in 20 hours using Angular for the RSS reader GUI and node-postgres, a collection of node.js modules, for the database interactions. However, application modification with internal tests took an additional 47.8 hours – 28.6 hours to code the tests and 19.2 hours to troubleshoot issues on three platforms until acceptance criteria were met – for a total of 67.8 hours. Three other Electron estimates for the Unicode Reader ranged from 80 to 120 hours with a mean of 100 hours. Get the complete whitepaper

Read More

This Is How To Improve the Performance of .NET Apps

Microsoft’s .Net is one of the most popular technologies used by businesses to power mission-critical digital services. Millions of developers use C#, ASP.Net, etc., to develop different types of widely used software solutions, primarily for Windows development. Solutions which use .Net range from Windows client applications, database applications, XML web services to niche corporate boutique-style apps. Therefore, it’s no surprise that ensuring the optimal performance of .Net applications is the main focus for organizations and developers running them. Different factors inhibit the performance of .Net applications. Before we discuss the perfect solution for .Net performance issues, let’s review these factors. What are the most common .Net performance issues? .Net applications can often perform poorly for a variety of reasons. However, two top factors are responsible for most .Net performance issues: busy UI, and garbage collection/memory pressure.  How does busy UI (dispatcher) thread affect application performance? If your desktop application’s UI freezes or lags, it is often related to the user interface (UI) thread or the dispatcher thread in the case of server applications. A UI thread can become busy due to different reasons— an algorithmic error or a thread contention; when a UI thread is waiting on a lock.  The primary duty of a UI thread is to execute blocks of work, one at a time until the application closes. When your application’s UI is running animation or trying to update screen elements or handle data, the system tries to execute the block of work responsible for the screen every 16 milliseconds so as to achieve the UI ideal goal of 60 frames per second. For this to be the case, the UI hierarchy must update simultaneously on the UI thread. However, regardless of how you synchronize your code, there are portions you can only run through one thread at a time. This leads to the thread containing numerous waiting UI tasks, making the queue too long to update the UI thread fast enough.  Consider going to a busy bank with only one bank clerk to help people out: multiple people can enter the bank to fill their requests but have to line up to receive any banking service. In this illustration, the service offering process is single-threaded, as it is with .Net applications. When the thread becomes busy, in other words, clogged with too many tasks, it can result in an application performance bottleneck.  How does garbage collection/memory pressure slow down .Net applications? .Net applications automatically dispose of inert obsoleted objects or objects that are inaccessible from the root when the system is running low on physical memory or when you explicitly use the GC.Collect() method. This automatic memory management is known as garbage collection. While this works to effectively manage memory pressure for .Net applications, over time, they reach points of insurmountable pressure, where the applications spend more time managing memory rather than executing instructions.  Generally, garbage collection pressure and busy UI slows down the performance of .Net applications. Fortunately, there are two tried and trusted ways you can avoid these pitfalls— switching to Delphi or using a .Net Delphi bridge.  Why should I switch from .Net to Delphi? Delphi is a tried and tested incredibly stable market-leading rapid application development environment. You can build native and cross-platform applications several times faster than most other solutions. In fact, […]

Read More

New free webinar: Getting started with a VCL Grid workhorse in Delphi apps

In this free webinar on January 27 from 4PM to 5PM UTC, hosted at https://www.tmswebacademy.com, meet TAdvStringGrid, a feature packed grid workhorse for Delphi VCL applications.With little to no code, this grid allows to import/export data in various formats sort filter print or generate a PDF file group hide rows and/or columns render mini HTML formatted text in cells add various graphics types in cells edit with various inplace editors visualize data in various ways perform drag & drop with other controls or applications, merge cells perform calculations much more… This is mostly YOUR webinar, as your host Bruno Fierens, CTO at tmssoftware.com will prepare the content based on your the topics you send in as well as questions asked live during the webinar. Make sure to send topic suggestions for the VCL Grid to be covered to info@tmssoftware.com and make sure to attend the webinar live so you can interact live!This webinar is aimed at developers new to the VCL grid or with intermediate knowledge about it.  Register now! Sign up for this webinar today and make sure to attend live on January 27 from 4PM to 5PM UTC (17h00 – 18h00 CET)

Read More

This Is How To Explain Automation To Your Boss

Behind every successful organization, especially those specializing in windows application development, are innovative solutions and strategies which were, at some point, just ideas in the minds of employees like yourself. You’ve probably identified areas of improvement in your organization’s workflows, and automation signifies a business potential if you can turn your ideas into reality.  According to a renowned American advertiser, Lois Wyse, “the only people in the world who can change things are those who can sell ideas.” Most of us realize it’s not enough just to spot automation as a business potential; we need to ideate, evaluate, and get buy-in from our bosses to move from idea to implementation. This is not always easy; more often than not, our bosses are busy people who might already be overwhelmed with executing their own priorities as well as that of their higher-ups. So, taking on a new approach may take a back seat to their day-to-day activities.  Automation is changing the way businesses run and manage processes; from improved asset utilization and increased productivity to faster process completion, the opportunities could be endless. You know all this, but how do you get your boss to buy in? How can you tailor your explanation to your boss’ goals and values? It is essential for anyone looking to sell anything, an idea or a product, to understand their audience’s goals and values. In this case, you need to know your boss’s unique blend of business goals and values. One way to go about this is by speaking directly to your boss on their goals and vision for the organization. For example, your boss might want to eliminate data silos, facilitate faster decision-making or faster process completion, and ultimately double revenue in four years. In addition to the many benefits of automation, it unlocks data silos, bringing data together from disparate sources and allowing for better data consumption and analysis. With the feedback from your boss, you can draft explanations and recommendations on all the revenue benefits, alongside a working strategy on how you hope to implement it. For example, what automation tools you’d be employing, what processes, and how you can double revenue by saving money through automation. How can you support your explanation with evidence from similar companies? Although recent advances in control system technology and machine learning have taken workflow automation to new heights, businesses and employees have been benefitting from its implementation for quite some time. For example, Amazon has been reaping automation benefits since 2012, when they bought a robotics company.  So, identify successful competitors within your market that are implementing automation and probably poaching your customers. This shouldn’t be a difficult task; odds are every organization implementing automation with the right strategy is successful. Locate them and use them to support your explanation. You can also include a detailed comparison of the two systems, with and without automation, using a reasonable sample size of companies before and after adopting automation. Photo by fauxels from Pexels How can you bring in an automation expert to bolster your case? If your boss is like mine, they probably trust the word of an expert more than that of his employee. Except you’re an automation expert yourself, offering to bring in one to explain further the new technology merits will definitely bolster […]

Read More

Advanced Curve Fitting with FNC Math Components

New version 3.2 of TMS Analytics & Physics library introduced FNC components for creating math applications with minimal code writing. The previous article described how to implement curve fitting. In this article, we’ll continue the theme and explain some advanced features for function approximation. Generally, we use some standard basis functions for curve fitting: Fourier basis (sine and cosine functions), polynomials, exponent functions, and so on. In rare cases, we need specific basis functions to approximate the data. The TMS FNC math components provide a straightforward way to create a basis with any set of functions. Moreover, we can develop and test the basis right in design time. The component for creating a basis with a set of user-defined functions is TFNCLinearBasis1D. The component provides the following published properties: Variable (TVariableProperty) – provides the name of the variable for the basis functions. Coefficient (TVariableProperty) – provides the name of the coefficient for the fitting problem. Order (integer) – number of basis functions for approximation (read-only). Expression (string) – math expression of the constructed function (read-only). Parameters (TParameterCollection) – a set of parameters for parametric basis functions. Functions (TParameterCollection) – a set of functions to construct the basis. The two last properties provide the functionality to construct an arbitrary basis. With the Parameters property, you can add named values into the math environment and then use them to parametrize the set of basis functions. The Functions property allows to add, edit, and delete functions via standard Delphi collection editors. The collection contains items of TFormulaProperty type. When you add an item to the collection you can edit it with the Object Inspector as shown in the picture below.  The class TFormulaPropery has several properties and a built-in mechanism to check the function for correctness. If you input a math expression that is not valid in the current context, the Error property will indicate what is wrong in the formula. An example is shown in the following picture. For our example, we created the collection with three basis functions: ‘1’, ‘log{2}(x/A)’ (logarithm to the base 2), and ‘P{3 2}(x/A)’ (associated Legendre polynomial of 3-rd degree and 2-nd order). Then, following the instructions described in the previous article, we added a data source, an approximated function, and a plotter to draw the function on the FNC chart. The final resulting FMX form at design time is shown in the picture below. The main advantage of using the FNC math components is that you can select appropriate basis functions without running the application. At design time you can change parameter values and math expressions of basis functions. The changes will immediately affect the approximated function and you can see as the fitted curve looks on the FNC chart. Also, you can verify that the approximation succeeded by looking at the properties of the approximated function, as shown in the following picture. Another feature of the FNC math components is that they work with symbolic data representation. Although the approximation uses discrete data as input, the result is a symbolic expression of the curve. So, we can use this expression for some advanced analysis. For example, we can evaluate the derivative of the function.      The TFNCApproxFunction1D is a descendant of the TFNCBaseFunction1D class. Thus, we can use the same approach, as described in this […]

Read More

How to Get More Results Out of Your JavaScript Grid Libraries

  Showing a large volume of information at once on a website without affecting the loading speed while allowing users to do complex operations on the data is quite challenging. To solve this problem, web developers can use data grids that render data in rows and columns similar to an HTML table. Today, several JavaScript grid libraries, such as Sencha Ext JS, allow users to load millions of records efficiently and do useful operations such as sorting, scrolling, filtering, and grouping. However, you must know how to get more results out of a JavaScript grid library so that users can get the maximum benefit and the best experience in table operations. If you are a web developer looking forward to using our JavaScript grid library, follow this article to know how you can get the most out of it. Why do you need to use pagination? When there is more information to load, rendering it in one page may require users to unnecessarily scroll through the page, which will affect the user experience. In such cases, you can use pagination, allowing users to view the entire data set by navigating through pages. Most javascript grid libraries come with support for pagination. Ext JS grid library also offers an automatic pagination option through its specialized toolbar that loads part of the data on one page. Therefore, always ensure to use the pagination option to make a web page less complicated and user-friendly. How to integrate Widgets into your grid? Sometimes data in a grid can show important information to the users, such as trends, patterns, progresses, and percentages. It will be really helpful if there is a way to visualize the patterns hidden on those data to better understand the story behind the numbers in grid columns. For such scenarios, some JavaScript Libraries provide the ability to integrate UI widgets for data visualization. For example, Ext Js Grid Library, allows you to add UI components or widgets such as bar charts, buttons, inline graphs, etc., into columns. Why is Pivoting important? If you want to show information summaries to your users, make the best out of pivoting in grid libraries. A pivot grid helps to show summaries from a large amount of information. It also enables users to understand the useful insights from the loaded data set. For example, suppose you are developing a web application for a company that helps management to understand which products have the most sales. In that case, you can easily show that information using pivoting. Why do you need to make use of data export and import? Clients are often required to export records into an external datasheet like an Excel sheet to separate references to the data. Allowing users to export the data in different formats, including CSV, PDF, and text format is a useful functionality you can offer. When exporting data, it is important to understand how much data, a specific format like an excel sheet, can contain to allow data export part by part. Users then can use the data for their analysis and as internal references. In addition, importing data from external sources is very useful. Check if your grid library provides these features and use them whenever you want to build a dynamic grid from an external data source. Why […]

Read More