sancarn / awesome-vba

A curated list of awesome VBA/VB6 frameworks, libraries, software and resources
Other
290 stars 32 forks source link

Chilkat ActiveX Libraries #8

Open sancarn opened 2 years ago

sancarn commented 2 years ago

After reddit user techjp indicated that it might be awesome enough. As a result we added it to:

Frameworks:

* [🖼][p_win][⭐][a_all][💲](# "Some modules free; Some require $299+ license")[👽](# "Requires external dll") [Chilkat AXL](https://www.chilkatsoft.com/refdoc/activex.asp) - Numerous useful ActiveX libraries hosted from a single zip.

WebTools:

* From Frameworks
    * In `Chilkat AXL` find `HTTP`, `HTTPRequest`, `HTTPResponse`, `Auth*`, `OAuth*`, `REST`, `WebSocket` and numerous other useful web-related libraries.

This evening Kallum and I have been taking a look at it and we aren't certain it is awesome, so would like to put it to a vote. 5 votes and we will re-add it. I've added my vote to take into consideration techjps suggestion.

Reasons for removal:

The library does not follow any constructor naming conventions e.g. loadXYZ.

'Typical name convention
With new ChilkatCsv 
  .LoadFile(...)
End With

'Looks okay and expected
With ChilkatJson
  .LoadString(...)
End with

'would have prefered LoadFile... but ok
With new ChilkatXml
  .LoadXMLFile(...)   
End Wit

'Convention not followed
With new ChilkatGzip
  .ReadFile(...)
End With

'Convention not followed
With new ChilkatHttp
  .PostJson(...)
End With

It is important for a framework to remain internally consistent, as this will reduce the learning curve of the library. This is especially important when

Very few examples

Again difficult to learn what is correct to do without good and full examples.

Poor error checking(?)

In order to get a feeling for the library I tried to parse a csv and set the column "c" to the sum of "a" and "b". This code didn't error, but it didn't modify the csv either... I'm a little unsure whether I'm doing the right thing or not, but the lack of errors sure don't help.

Sub t()
  Dim x As New Chilkat_v9_5_0.ChilkatCsv
  Call x.LoadFile("C:\Users\sancarn\Desktop\tbd\chilkatax-9.5.0-x64\_test.csv")

  Dim i As Long: i = 1
  For i = 1 To x.NumRows
    Call x.SetCellByName(i, "c", x.GetCellByName(i, "a") + x.GetCellByName(i, "b"))
  Next

  Call x.SaveFile("C:\Users\sancarn\Desktop\tbd\chilkatax-9.5.0-x64\_test.csv")
End Sub